Sunteți pe pagina 1din 19

Arhitectura calculatoarelor CAPITOLUL I

CAPITOLUL I
INTRODUCERE

1.1. Arhitectura calculatoarelor - definiţii şi terminologie

Arhitectura calculatoarelor este o ramură a informaticii percepută destul de divers în literatura de


specialitate, de unde rezultă şi diversitatea modurilor în care ea este definită. Astfel, în unele lucrări se spune că
domeniul se ocupă cu „studiul structurii, comportării şi proiectării calculatoarelor”, iar în altele, cu „proiectarea
specificaţiilor generale pentru un întreg sistem de calcul sau numai pentru o parte a sa”. Alteori, arhitectura este
definită ca „o interfaţă între hardware şi software-ul de cel mai scăzut nivel” sau se consideră că tratează
„proiectarea unui sistem de calcul integrat capabil să devină un instrument eficient în mâna programatorilor”.
Şi din punct de vedere istoric, domeniile abordate de către arhitectura calculatoarelor au evoluat: dacă
în anii '60 acestea vizau numai aritmetica sistemelor de calcul, în anii '70 şi '80 vor fi abordate şi elemente legate
de proiectarea setului de instrucţiuni, iar începând cu anii '90, pe lîngă problemele legate de proiectarea unităţii
centrale, a ierarhiei memoriilor, a mecanismelor de intrare - ieşire, vor fi tratate şi aspecte conceptual-funcţionale
vizând sistemele cu multiprocesare sau reţele de calculatoare. Extrapolând aceste tendinţe, suntem îndreptăţiţi să
credem că în anul 2010 în aria arhitecturală a ştiinţei calculatoarelor vor fi cuprinse teme legate de studiul
organizării sistemelor cu autoadaptare sau al structurilor autoinstruibile.
Încercând totuşi o să alegem o definiţie, considerăm potrivit să ne oprim asupra următorului enunţ:
arhitectura calculatoarelor se ocupă cu identificarea şi descrierea acelor atribute ale sistemului de calcul
vizibile programatorului (setul de instrucţiuni, reprezentarea datelor şi a structurilor de date, organizarea
memoriei pentru programe, modurile de adresare, mecanismul de intrare/ieşire), cât şi cu prezentarea
principiilor structurale de proiectare ale maşinilor de calcul.
Cu toate că avem de-a face cu două noţiuni care au semnificaţii diferite, în anumite lucrări conceptul de
„arhitectură” este înlocuit sau confundat cu cel de „organizare”. Eroarea este evidentă, pentru că de fapt este
vorba de cele două componente distincte care se îmbină armonios în arhitectura unui calculator: arhitectura se
referă la setul de instrucţiuni al procesorului, iar organizarea, la structura maşinii de calcul.
Arhitectura setului de instrucţiuni (ISA - Instruction Set Arhitecture) descrie structura maşinii de calcul
din punctul de vedere al programatorului. Setul de instrucţiuni realizează interfaţa între software şi hardware.
Prin abuz de limbaj, se spune uneori că membrii unei familii de procesoare au aceeaşi arhitectură, dacă
ei rulează acelaşi set de instrucţiuni. În acest caz termenul „arhitectură” se referă numai la ISA. Este deci posibil
ca procesoare care au diverse organizări interne şi sunt fabricate de producători diverşi să fie percepute de către
programatori ca fiind identice, tocmai pentru că au seturi de instrucţiuni identice (este cazul familiilor arhitecturale
de tip INTEL, IBM sau SUN). Aşa cum însă vom discuta mai târziu, este posibil să se construiască şi procesoare
capabile să implementeze mai multe seturi de instrucţiuni, cum este cazul celor microprogramate, capabile să
genereze microcod modificabil.
Câteva exemple consacrate de arhitecturi tipice pentru seturi de instrucţiuni sunt: Digital Alpha (1992-
1997), HP Precision Arhitecture (1986-1996), Sun Sparc (1987-1995), MIPS I-V (1986-1996), Intel 80x86,
Pentium, Pentium MMX (1978-2002…).
Organizarea maşinii de calcul desemnează atât modul în care a fost implementată arhitectura setului
de instrucţiuni (tehnologiile utilizate, semnalele de comandă şi control, accesul la resurse), cât şi felul în care sunt
interconectate diversele nivele ale unităţilor funcţionale. Organizarea calculatorului este transparentă
programatorului.
Datorită numai modului diferit de implementare al unor caracteristici organizaţionale - ca, de exemplu,
numărul unităţilor funcţionale, complexitatea prelucrării instrucţiunilor şi posibilităţile ca acestea să fie tratate în
paralel, dimensiunea şi organizarea memoriei cache ş.a. - pot fi întâlnite procesoare cu seturi de instrucţiuni
identice, dar cu performanţe radical diferite.
Cele două componente arhitecturale - setul de instrucţiuni şi organizarea maşinii - sunt legate între ele,
dar nu trebuie în mod necesar tratate împreună. Spre exemplu, instrucţiunea de înmulţire disponibilă într-un

5
Arhitectura calculatoarelor CAPITOLUL I

calculator poate fi prezentată ca o caracteristică ISA a acestuia. Dacă însă este prezentat modul cum această
operaţie este implementată, avem de-a face cu un aspect organizaţional al aceluiaşi calculator.
Cu toate că detaliile organizării maşinii sunt transparente pentru software, nu trebuie pierdut din vedere
faptul că ele contribuie în mare măsură la obţinerea performanţelor de calcul, astfel încât este de dorit ca unele
elemente organizaţionale de bază să fie totuşi cunoscute de către programatori. Codul compilat va rula în mod
similar pe sisteme cu structuri interne diferite, dacă ele au acelaşi ISA. El nu va fi capabil să detecteze dacă
sistemul pe care rulează are sau nu memorie cache sau implementează mecanismele prelucrării pipeline, însă
aceste caracteristici vor fi esenţiale pentru viteza cu care programul se execută. În consecinţă, eficienţa rulării
codului va fi diferită de la un calculator la altul, dacă acestea au particularităţi organizaţionale distincte.
Evoluţia arhitecturilor de calculatoare este strâns legată şi uneori chiar impusă de progresele din unele
domenii conexe: tehnologiile de realizare ale componentelor electronice, limbajele de programare de nivel înalt,
sistemele de operare, programele de aplicaţii, tehnicile de proiectare, măsurare şi evaluare, creativitatea ş. a.

1.2. Progresul tehnologic şi evoluţia calculatoarelor

Pentru a aduce argumente în sprijinul comentariilor de la sfârşitul paragrafului anterior legate de


condiţionările evoluţiilor arhitecturale, vom ilustra prin câteva date statistice şi grafice dramaticele schimbări din
ultimul timp ale parametrilor unei maşini de calcul, determinate de spectaculoasele progrese ale tehnologiei.
Componentele vizate în special de aceste progrese tehnologice sunt procesoarele, memoria internă, discurile
magnetice şi cele optice.
Dinamica performanţelor procesoarelor poate fi reprezentată prin mai mulţi indicatori, însă oricare dintre
aceştia poate fi edificator chiar de unul singur. Astfel, dacă rata anuală a creşterii capacităţii logice are valoarea
de 30%, iar frecvenţa ceasului intern creşte anual cu circa 20%, gradul de integrare a depăşit în anul 2000 pragul
celor 100 milioane de componente elementare într-un singur circuit (pe când - spre exemplu - Intel 4004 nu
îngloba în 1971 decât ceva mai mult de 1000 de componente!).
Nici evoluţia memoriilor nu rămâne mai prejos: în timp ce capacitatea memoriilor DRAM creşte de circa
4 ori în trei ani, iar rata de transfer a acestora se îmbunătăţeşte cu 10% pe an, costul per bit scade anual cu
aproximativ 25%. Şi memoriile externe evoluează rapid, capacitatea discurilor hard mărindu-se cu 60% pe an, iar
volumul de date disponibile dublându-se la fiecare 9 luni.
În perioada 1982-1995 performanţele procesoarelor, măsurate prin indicatori SPEC, s-au dublat la
fiecare 1.5 ani. Astfel, generaţia 1995 a microprocesoarelor familiei Intel x86 era de aproape 200 de ori mai
performantă decât cea a anilor '80, pe când un procesor RISC din acelaşi an era de 300 de ori mai puternic. În
fine, pentru a încheia şirul acestor câteva exemple, să mai menţionăm că lăţimea de bandă a comunicaţiilor din
reţele se dublează anual.
Dinamici ca şi cele de mai sus sunt cu mult mai multe. Preferăm totuşi să ne oprim aici, iar în loc de
concluzii să invităm cititorul să întârzie câteva momente privind diagramele din figura 1.1, care ilustrează astfel de
aspecte evolutive. Cum graficele din figură sunt sugestive prin ele însele, alte comentarii suplimentare asupra lor
devin de prisos.

1.3. Evoluţia dispozitivelor de calculat - scurt istoric

Cu toate că despre calculatoarele electronice se vorbeşte numai de circa şase decenii, istoria maşinilor
de calculat este bogată şi complexă. O prezentare cronologică a progreselor din acest domeniu poate fi
importantă, pentru că vom avea astfel posibilitatea să înţelegem mai bine resorturile şi motivaţiile care au
determinat aceste evoluţii permanente şi spectaculoase. Nici chiar istoria calculatoarelor nu poate fi acoperită
integral în câteva pagini. Sunt matematicieni sau ingineri care au elaborat lucrări de sute de pagini dedicate
numai acestui subiect, cu investigaţiile extinse până în preistorie şi fapte prezentate în conexiune cu evenimente
din alte domenii ştiinţifice sau tehnice.
Pentru mai multă rigoare, diversele soluţii propuse în timp pentru maşinile de calcul au fost încadrate
într-un număr de generaţii succesive. Numărul de trepte pe această scară de evoluţie poate fi fixat la şase:
generaţia 0 - maşinile mecanice şi electromecanice de calculat;
generaţia 1 - calculatoarele realizate cu tuburi electronice;
6
Arhitectura calculatoarelor CAPITOLUL I

generaţia 2 - calculatoarele cu tranzistori;


generaţia 3 - calculatoarele cu circuite integrate;
generaţia 4 - microprocesoarele;
generaţia 5 - calculatoarele cu arhitecturi paralele.

Maşinile mecanice/electromecanice - generaţia 0


Această generaţie acoperă o perioadă cu o mare întindere în timp (din Evul Mediu până în 1940) şi
debutează cu maşinile mecanice de calculat, construite în secolele XVI - XVIII. Pentru că erau alcătuite din
angrenaje cu roţi dinţate şi pârghii, aceste dispozitive semănau oarecum cu ceasurile. Ele lucrau în aritmetica
zecimală, astfel încât roţile aveau câte zece dinţi. Datorită pieselor în mişcare şi a frecărilor, maşinile erau lente şi
puţin fiabile, iar datorită mecanicii fine utilizate, erau şi scumpe. Datele destinate prelucrării nu puteau fi stocate,
iar rezultatele prelucrărilor nu puteau fi nici păstrate şi nici transferate de pe o maşină pe alta. "Programarea"
maşinilor mecanice se făcea prin modificarea parametrilor constructivi ai acestora, constând practic în
schimbarea roţilor dinţate ale angrenajelor.
Primele creaţii de acest fel au fost cele concepute şi realizate de către Wilhelm Schickard - astrolog şi
matematician (1624), Blaise Pascal - matematician (1642) şi Gottfried Wilhelm Leibnitz - inventator şi
matematician (1694). Din păcate, maşina lui Schickard, care efectua automat cele patru operaţii aritmetice şi se
pare că era mult mai complexă decât "cutia" construită ulterior de Pascal, a fost distrusă într-un incendiu
împreună cu autorul ei şi nu a mai fost niciodată reconstituită.
La numai 17 ani, Blaise Pascal a construit o „cutie” care efectua numai adunări şi scăderi şi era
destinată a-l ajuta pe tatăl său - de profesie perceptor. Să remarcăm - măcar în treacăt - faptul că şi astăzi unul
din principalele domenii de aplicaţie al calculatoarelor a rămas colectarea impozitelor şi taxelor.
Maşina lui Leibnitz efectua toate cele patru operaţii şi aducea unele îmbunătăţiri împărţirii. Cu toate că
nu a utilizat termenul, Leibnitz are primele preocupări pentru a defini principiile şi tehnicile inteligenţei artificiale.
Versiunile ulterioare ale maşinii sale au fost utilizate până în anii '40, când au devenit disponibile primele
calculatoare electronice. Astfel, o maşină mecanică comercială de calcul, versiune a maşinii lui Leibnitz -
aritmometrul Thomas - a fost menţinută în producţie până în 1926.
Maşini similare cu cele ale lui Pascal sau Leibnitz au mai construit - printre alţi - Lepine (1725), Hillerin
(1730), Pereire (1751) sau Stanhope (1775). Bazându-se pe tabelele de logaritmi elaborate de Napier în 1617,
Edmund Gunter construieşte în 1624 rigla de calcul, utilizată în activităţile de proiectare inginerească până la
sfârşitul anilor '60.
Pare paradoxal, dar prima maşină programabilă nu efectua calcule, ci … ţesea pânză! Ea a fost
construită in 1801 de către un pionier al revoluţiei industriale din Europa - francezul Joseph Jaquard - sub forma
războiului de ţesut automat, care lucra „citind” informaţii de pe cartele perforate. Observăm cum noţiunea de
program a apărut mai întâi în lumea mecanică. De altfel, ideea este cu mult mai veche, putând fi întâlnită în
scrierile antice ale lui Heron din Alexandria sau materializată în dispozitive de tipul cutiilor muzicale sau al
ceasurilor cu mecanisme de animaţie ale unor figurine.
Un progres semnificativ în tehnica de calcul este datorat celui care astăzi este considerat părintele
calculatoarelor moderne, matematicianului englez Charles Babbage (1792 - 1857). Preluând ideea stocării datelor
pe cartele perforate, el a iniţiat construcţia a două maşini mecanice remarcabile, numite diferenţială şi analitică.
Primul proiect, insuficient finanţat de către guvernul englez între 1828 - 1833 (şi din această cauză rămas
neterminat), viza realizarea unei maşini pentru automatizarea calculului funcţiilor polinomiale şi a tipăririi
rezultatelor. Suplimentar, pentru calculul funcţiilor trigonometrice, Babbage propunea o nouă tehnică, numită
metoda diferenţelor finite.
Maşina analitică era proiectată pentru a efectua automat orice operaţie aritmetică şi prefigurează primul
calculator programabil, deoarece includea în premieră câteva elemente constitutive ale calculatoarelor moderne:
unitate aritmetică de calcul, memorie de lucru pe cartele perforate pentru date, dispozive de intrare - ieşire. Din
păcate, complexitatea proiectului îl va face imposibil de construit la acea vreme. Totuşi, în anul 1853, proiectul va
fi parţial implementat în Suedia de către Edward Schentz, sub forma unui model funcţional destinat calculului
tabelelor astronomice.
Cercetările lui Babbage au fost completate de către matematiciana Ada Gordon (căsătorită cu William
King, înnobilat mai târziu conte de Lovelace), interesată îndeosebi de maşina analitică. Ea este cea care a
sugerat pentru stocarea datelor - în premieră - utilizarea7 sistemului binar în locul celui zecimal, inspirată probabil
Arhitectura calculatoarelor CAPITOLUL I

de teoria matematică a logicii binare, elaborată între timp de către George Boole (1847). Tot ea este cea care,
elaborând anumiţi algoritmi pentru operaţii matematice (îndeosebi pentru calculul numerelor lui Bernoulli), pune
fundamentele unei noi discipline, numită calcul numeric. Ada Gordon este considerată de aceea primul
programator din lume. În anii '70, Departamentul Apărării al SUA va atribui numele ei unui limbaj de programare
de nivel inalt - ADA.
În secolul al XIX-lea "înmuguresc" primele sisteme de telecomunicaţii. Telegraful lui Sommering utiliza
35 de fire pentru a transmite pe fiecare dintre ele câte un caracter. În 1819 H. C. Oersted aduce o contribuţie
majoră la dezvoltarea teoriei transmisiei semnalelor, descoperind că în jurul unui conductor străbătut de curent
electric apare un câmp magnetic. Pe această bază, Cooke va construi în 1828 un nou telegraf, care se va dovedi
foarte util pentru societăţile constructoare de căi ferate. Construcţia cablurilor electrice izolate permite efectuarea
legăturilor telegrafice submarine. Prima dintre ele traversează Canalul Mânecii în anul 1850, fiind urmată curând
de legăturile transatlantice. Un astfel de cablu care traversa oceanul, cu o lungimea de 2300 de mile, avea în
1865 o greutate de… 9000 de tone şi permitea transmiterea a 8 cuvinte pe minut. Costul transmisiei a 20 de
cuvinte era de 100 de dolari aur.
În 1876, Alexander Graham Bell reuşeşte prima convorbire telefonică, care va sta la baza edificării
reţelelor de comunicaţie prin comutaţie de circuite. Din 1897, legăturile din aceste reţele se pot efectua automat,
pe baza descoperirii lui Strowger. Progresele în telecomunicaţii nu se opresc însă aici. In 1864, J. C. Maxwell
prognozează existenţa undelor radio, iar în 1887 Heinrich Hertz le demonstrează existenţa. Pe această bază,
Marconi realizează în 1901 prima transmisie radio. În fine, în 1906 Lee deForest înventează tubul cu vacuum.
Utilizarea telegrafului a dus la elaborarea teoriei electronice care descrie comportarea semnalelor în
diferite circuite. Fără aceste fundamente, construcţia ulterioară a calculatoarelor de mare viteză ar fi fost
imposibilă. În plus, construcţia reţelelor telegrafice şi - mai târziu - a celor telefonice a promovat circuitele de
comutaţie, care vor sta la baza construcţiei primelor calculatoare electromecanice. Tubul cu vacuum este
amplificatorul cu care se va construi mai târziu primul calculator electronic. În concluzie, triada telegraf - telefon -
tub electronic va constitui soclul comun teoretic şi practic de pe care vor fi edificate în secolul nostru toate marile
descoperiri din tehnica de calcul.
La sfârşitul secolului XIX, Herman Hollerith construieşte un nou calculator mecanic - maşina tabulator.
Destinat prelucrării statistice a informaţiilor obţinute din recesământul populaţiei, tabulatorul transporta în
premieră cu ajutorul curentului electric datele citite de pe cartelele perforate la unitatea de calcul. Utilizarea
maşinilor lui Hollerith la recensământul efectuat în anul 1890 în SUA a redus timpul de prelucrare la numai două
luni, faţă de 7,5 ani cât se estimase că va dura procedura manuală. Utilizarea codului de reprezentare al datelor
pe cartele, conceput chiar de Hollerith (de aceea a şi fost numit cod Hollerith) s-a generalizat rapid şi a fost
menţinută până în zilele noastre.
Hollerith Tabulating Company - companie fondată de către constructorul tabulatorului - realizează în
1914 o fuziune cu alţi doi parteneri, sub numele C-T-R (Calculating - Tabulating - Recording). În 1924 holdingul se
transformă în International Bussines Machine, cel care astăzi a devenit giganticul concern multinaţional IBM, lider
mondial al producţiei de tehnică de calcul.
De obicei, majoritatea celor care folosesc astăzi termenul de calculator se referă la un dispozitiv
numeric. Lucrurile nu au stat totuşi întotdeauna aşa: până în anii '70, calculatoarele analogice, mecanice sau
electronice, erau şi ele frecvent folosite, de obicei în simularea unor sisteme reale prin intermediul unor modele.
Probabil, cel mai vechi calculator analogic este clepsidra, iar cel mai utilizat, cunoscutul dispozitiv simulator al
trecerii timpului - ceasul. Părintele calculatoarelor analogice moderne este unanim considerat Vannavar Bush, cu
toate că în 1876 lordul Kelvin construieşte un astfel de dispozitiv mecanic, destinat previziunilor privind
comportamentul mareelor. Bush - care lucra la Massachutets Institute of Technology - a construit la începutul
anilor '30 analizorul diferenţial electromecanic, bazat pe utilizarea integratoarelor mecanice cu disc şi roată de
fricţiune. Această maşină cu greutatea de 100 de tone era capabilă să rezolve ecuaţii de 18 variabile şi a fost
utilizată pentru efectuarea de calcule balistice sau din fizica atomică. În 1945 Bush publică în revista Atlantic
Monthly o propunere pentru un sistem de informare numit Memex, un strămoş al serviciului actual de informare şi
documentare pe Internet numit WWW.
Calculatoarele analogice au avut importanţa lor pentru dezvoltarea celor numerice însă - odată cu
trecerea timpului - şi-au pierdut din utilitate, mai ales din cauza lipsei de precizie (exactitatea lor era esenţial
determinată de natura componentelor folosite la realizarea modelului sistemului simulat). Ultimele astfel de
8
Arhitectura calculatoarelor CAPITOLUL I

sisteme au fost folosite în anii '70 ca integratoare electronice pentru simularea unor sisteme dinamice complexe
sau ca sintetizatoare muzicale.
Cu toate că în general s-a încetăţenit ideea că industria de calculatoare îşi are originile în perioada celui
de-al doilea război mondial, încă din 1872 ( la numai câteva decenii după introducerea primelor aplicaţii practice
ale electricităţii), Society of Telegraph Engineers discută, cu ocazia celei de-a patra adunări ordinare de la
Londra, probleme referitoare la "calculul electric".
Contribuţiile teoretice din domeniu elaborate în secolul al XIX-lea vor fi completate la începutul secolului
XX. Astfel, teoria logicii binare a lui Boole va fi completată în anii '30 la Bell Labs de către Claude Shannon. La
sfârşitul acestui deceniu, matematicianul englez Alan M. Turing, pune bazele teoretice ale informaticii,
dezvoltând şi noţiunea unei maşini universale (astăzi numită chiar maşina Turing). Aceasta putea să execute
orice algoritm care ar fi putut fi descris, având totuşi o structură simplă, cu memorie, mecanism de luare a
deciziilor şi un procesor de tip automat cu stări finite. Turing introduce conceptul de calculabilitate, lansează ideea
că un calculator poate emula un altul şi demonstrează că o problemă care poate fi rezolvată pe un anumit
calculator poate fi de asemenea rezolvată pe orice calculator. Dacă problema nu poate fi însă rezolvată pe
maşina Turing, ea nu va putea fi soluţionată pe nici un sistem de calcul, prezent sau viitor. Turing a jucat un rol şi
în cel de-al doilea război mondial, construind în mare secret la Bletchley Park maşina Colossus, destinată
decriptării codurilor de comunicaţie ale inamicilor germani.
O altă contribuţie teoretică de valoare a acelor vremuri a fost construcţia primului model simplificat al
celulei nervoase. Această primă încercare de a modela cu ajutorul componentelor electronice unul din cei 1011
neuroni ai creierului uman a fost făcută în 1943 şi aparţine neurofiziologilor Warren McCulloch şi Walter Pitts.
Reţelele neurale, construite ulterior pe baza acestui model sau a altora mai evoluate, sunt structuri de calcul
paralele, radical diferite de calculatoare. Ele au capacitatea de a se instrui şi - cu toate că incă nu sunt în mod
direct legate de calculatoare - este foarte posibil ca în viitor aceste relaţii să se modifice în mod spectaculos.
În 1934, Konrad Zuse inaugurează o nouă eră, construind primul calculator utilitar electromecanic,
bazat conceptual pe maşina analitică a lui Babbage şi folosind eficient releele electromagnetice. După realizarea
modelelor Z1 şi Z2, utilizate în Germania pentru proiectarea avioanelor, Zuse a avut chiar intenţia de a construi cu
ajutorul a 1500 de tuburi un calculator electronic. Din păcate, bombele celui de-al doilea război mondial au distrus
cea mai mare parte a muncii sale, iar ulterior Zuse a ratat încercarea de a-şi continua cercetările, spre sfârşitul
vieţii dedicându-se …picturii.
În aceeaşi perioadă în care Zuse realiza maşinile sale, Howard Aiken construia la Universitatea Havard,
cu sprijinul financiar şi practic al IBM - ului, o altă implementare a maşinilor lui Babbage – calculatorul
programabil Mark I. Terminată în 1944, maşina lui Aiken a fost utilizată de către US Navy până la sfârşitul
războiului. Ea utiliza aritmetica zecimală, avea o memorie de 72 cuvinte a 23 biţi, efectuând o adunare în 0,3
secunde şi o multiplicare în 6 secunde. Mark I avea o arhitectură Harvard, denumire care va fi atribuită ulterior şi
altor sisteme care folosesc căi separate de tratare pentru date şi instrucţiuni.
Cu toate că maşinile electromecanice de calculat au dus la reduceri semnificative ale timpilor de calcul şi
la creşterea acurateţei şi preciziei rezultatelor, ele aveau două mari dezavantaje: viteza limitată de operare şi
construcţia complicată, lipsită de fiabilitate şi scumpă.

Calculatoarele cu tuburi electronice - generaţia 1


Dacă încercăm o comparaţie plastică, un calculator modern construit astăzi cu tuburi electronice ar avea
dimensiunile clădirii Empire State Building. Totuşi, acest balon de sticlă vidat - având în interior anodul, catodul,
filamentul şi grila - reprezintă primul comutator electronic utilizat în construcţia unui calculator, eliminând total
releele electromagnetice, care erau mult mai lente. Această primă generaţie deschide era electronică în evoluţia
calculatoarelor şi se întinde între anii 1945 – 1958.
Primul calculator electronic este considerat ENIAC (Electronic Numerical Integrator and Calculator), o
maşină programabilă specializată, solicitată de armata americană pentru realizarea calculului tabelelor balistice
de artilerie. Unii istorici propun pentru întâietate maşina ABC, construită în 1940 de Atanasoff şi Berry, la Iowa
State College. Criticii acestei propuneri argumentează însă că ABC nu a fost niciodată terminată şi ea nici nu era
un sistem de calcul de uz general, fiind destinată numai pentru rezolvarea ecuaţiilor liniare.
Calculatorul ENIAC a fost construit la Moore School of Engineering a Universităţii din Pennsylvania, de
către inginerii Presper Eckert şi John W. Mauchly, ajutaţi de John von Neumann, fiind terminat în 1945. Era un
prototip cu dimensiuni care astăzi ne par gigantice pentru9 o maşină de calcul: 17480 de tuburi electronice, 70000
Arhitectura calculatoarelor CAPITOLUL I

rezistoare, 10000 condensatori, 6000 comutatoare, greutate de 30 tone, suprafaţa de 30 x 20 picioare, putere
instalată de 140 kW.
ENIAC avea o arhitectură construită în jurul unui registru acumulator, lucra la o frecvenţă de ceas de 100
kHz, putea stoca 20 de numere lungi de 10 cifre reprezentate zecimal, iar ca dispozitive de intrare-ieşire utiliza
cititoare şi perforatoare de cartele.
Ca o curiozitate, datorită celor 20 de circuite sumatoare care operau în paralel, ENIAC poate fi
considerat şi primul sistem cu procesare paralelă. Programarea lui era foarte laborioasă, făcându-se manual, prin
acţionarea unor comutatoare şi modificarea unor legături pe un panou. De altfel, chiar Mauchly, care introduce
temenul de "programare" într-un articol dedicat calculului electronic şi publicat în 1942, se limitează la aceste
operaţii primitive, accepţiunea modernă a cuvântului "program" fiind stabilită mai târziu, în 1946, la consfătuirile
de vară de la Moore School. Deoarece nu putea să execute instrucţiuni condiţionale ( de tip IF…THEN sau
REPEAT…UNTIL) şi deci nu putea să ia decizii pe baza rezultatelor calculelor pe care le efectua - trăsătură
fundamentală a tuturor calculatoarelor moderne - ENIAC nu poate fi introdus în această categorie, fiind
considerat, ca şi predecesorul său ABC, mai mult un prototip destul de sofisticat al unei maşini de calcul.
Eckert şi Mauchly părăsesc Moore School şi înfiinţează propria lor companie - Electronic Control
Corporation - unde elaborează proiectul primului calculator universal automat (UNIVAC - Universal Automatic
Computer). Cu toate că va pierde întâietatea implementării în favoarea celor de la compania Remington-Rand,
UNIVAC va deveni mai târziu primul calculator cu succes comercial din SUA şi va fi achiziţionat de US Census
Bureau pentru a înlocui echipamentele IBM mai vechi.
John von Neumann a fost unul din participanţii la construcţia ENIAC - ului. Sesizând necesitatea
păstrării programului de calcul alături de datele ce vor fi procesate, el propune o îmbunătăţire imediată a
arhitecturii ENIAC, constând dintr-un suport comun de stocare de tip read/write, organizat în locaţii adresabile şi
numit memoria de lucru. Instrucţiunile programului astfel stocat vor fi executate secvenţial. Primul calculator cu
program memorat este EDVAC (Electronic Discret Variabile Calculator). De fapt, se poate vorbi despre trei
variante ale acestui calculator: cel proiectat de von Neumann, cel proiectat de echipa sa iniţială şi cel care a fost
până la urmă construit la Moore School în 1949.
Von Neumann şi echipa sa părăsesc Moore School şi se stabilesc la Institute for Advanced Studies al
Universităţii Princeton, unde construiesc, începând cu 1947, maşinile IAS, noi modele conceptuale de
calculatoare bazate pe arhitectura EDVAC. Aceste arhitecturi, cunoscute sub numele „von Neumann”, stau la
baza majorităţii sistemelor de calcul construite până astăzi.
Unul din cele mai importante centre pentru dezvoltarea calculatoarelor a fost în anii '40 Manchester
University din Anglia. Aici a fost inventată de către F. C. Williams un nou mod de stocare al datelor binare,
utilizând un tub catodic (CRT). În 1948, T. Kilburn transformă memoria lui Williams într-un prototip de calculator
numit Manchester Baby, care poate revendica astăzi şi el întâietatea ca prim calculator cu program memorat. Tot
în Anglia, dar de data asta la Cambridge University, în 1949 Maurice V. Wilkes construieşte EDSAC (Electronic
Delay Storage Automatic Calculator), un sistem asemănător cu IAS.
Nu toată lumea aprecia însă în Anglia potenţialul calculatoarelor. Cam în aceeaşi perioadă în care un
membru al Astronomer Royal declara (înaintea lansării de către sovietici a primului satelit artificial) că o călătorie
în spaţiu este "o prostie", profesorul Hartree declara: "noi avem un calculator la Cambridge, mai este unul la
Manchester şi altul la NPL. Presupun că mai trebuie unul în Scoţia, şi vom mulţumi atunci pe toată lumea".
Rezultatul colaborării între Manchester University şi Ferranti Ltd. va fi calculatorul practic Ferranti Mark
I, urmat de modelul Ferranti Mercury, care utilizează în premieră memoria pe toruri de ferită (patentată în 1949
la Harvard University de către An Wang, şi folosită ulterior la primul calculator destinat procesării informaţiilor în
timp real - modelul Whirlwind, produs în 1953 la MIT pentru US Air Force). În anii '60, utilizarea acestui tip de
memorie va fi generalizată. Punctul culminant al fructuoasei colaborări între Manchester University şi Ferranti va fi
atins în 1962 cu calculatorul Atlas, care implementa în premieră conceptul de memorie virtuală şi era la ora
aceea cel mai puternic din lume.
De obicei, într-o istorie a calculatoarelor realizările sovieticilor sunt ignorate cu desăvârşire. Este totuşi
bine de ştiut că cercetările acestora în domeniul tehnicii de calcul electronice au demarat imediat după sfârşitul
celui de-al doilea război mondial. S. A. Lebedev şi echipa sa vor construi un prim calculator între 1949 - 1950, pe
care îl vor numi MESM. El va fi urmat de o variantă îmbunătăţită, numită BESM. Activitatea lui Lebedev nu va fi
însă incurajată de către autorităţile sovietice de la inceputul anilor '50, care o considerau mult prea costisitoare.
10
Arhitectura calculatoarelor CAPITOLUL I

În plus, mulţi savanţi ruşi considerau că niciodată calculatoarele numerice nu vor fi în stare să facă o concurenţă
reală celor analogice.
Istoria primei generaţii de calculatoare electronice este strâns legată de realizările companiei IBM. Până
în 1940, IBM producea mai ales perforatoare de cartele sau maşini de scris electrice. După primele contacte cu
Aiken, la Universitatea Harvard, preşedintele T. J. Watson Sr. dispune construcţia în 1948 a maşinii de calculat
SSEC (Selective Sequence Control Computer), care nu era însă un calculator cu program memorat. Preşedintele
Watson nu agrea însă prea tare noile dispozitive de calculat, pe care le considera că pot periclita afacerile
societăţii. Va fi convins însă de contrariu chiar de către fiul său, care înlocuieşte în 1953 modelul electromecanic
Mark IV (urmaş a lui Mark I) cu calculatorul comercial IBM 701 EPDM, un concurent adevărat al UNIVAC - ului.
Concernul IBM a mai lansat modelele 704 şi 709 (1958), acesta din urmă fiind ultimul calculator cu tuburi
electronice. În 1955, IBM 704 este primul mainframe cu unitate de calcul în virgulă flotantă. El a fost proiectat în
mare parte de către Gene Amdahl, cel care îşi va înfiinţa mai târziu propria companie şi va construi
supercomputerele anilor 1990.
Pentru că seria 700 nu lucra cu echipamentele de procesare bazate pe cartele perforate, IBM crează
modelul 650 EPDM, compatibil cu vechile maşini de calcul din seria 600 şi deci atrăgător şi pentru utilizatorii
tradiţionali ai produselor sale. De altfel, conceptul de compatibilitate va reprezenta de acum înainte o constantă
a preocupărilor concernului, ori de câte ori va lansa un produs nou. Având un preţ de cost scăzut, IBM 650 a fost
cumpărat de universităţile americane, care reuşesc astfel să pună în aceşti ani bazele unei prime comunităţi de
utilizatori ai calculatoarelor.
Succesul seriei 700 va asigura poziţia dominantă a IBM-ului pe piaţa calculatoarelor mari (numite şi
mainframes) pentru cel puţin un deceniu. De altfel, după 1960 concernul devine cel mai important fabricant de
tehnică de calcul din lume, poziţie pe care o va păstra până în zilele noastre.

Calculatoarele cu tranzistori - generaţia 2


Tuburile cu vid erau voluminoase, necesitau consumuri energetice mari şi disipau cantităţi uriaşe de
căldură. De aceea, continuarea erei calculatoarelor electronice va fi condiţionată - între 1958 şi 1964 - de
utilizarea tranzistorilor.
Inventat în 1948 şi oferind aceleaşi funcţii de bază ca şi tubul cu vid, dar la tensiuni şi curenţi mult mai
mici, tranzistorului nu i s-a prezis un viitor deosebit, aşa cum s-a întâmplat la început şi cu alte mari descoperiri
ale ştiinţei. Chiar electroniştii considerau că el nu poate asigura puterea electrică a unui tub şi astfel
comportamentul de comutator electronic al tranzistorului (determinat de joncţiunea între emitor şi colector stabilită
într-un material semiconductor şi comandată de tensiunea aplicată pe bază) nu poate fi valorificat.
Evident că avantajele tranzistorului îl vor inpune însă rapid. Neavând filament, el nu mai disipă cantităţi
mari de caldură. Dacă un tub electronic avea un inch diametru şi trei lungime, gabaritul tranzistorului se reduce la
numai ¼ inch diametru şi 3/16 inch lungime. Tranzistorul nu este numai mult mai mic ci şi mai fiabil şi mai ieftin
decât tubul electronic. Apelând din nou la o comparaţie, un calculator modern construit cu tranzistori ce ocupa
doar câteva etaje din Empire State Building.
Primul calculator experimental cu tranzitori a fost TX-0, construit la MIT în 1955, cu scopul de a testa
conceptele unui nou calculator, TX-2. El nu va mai fi niciodată realizat, însă Ken Olsen, unul dintre membrii
echipei care a lucrat la prototipuri, înfiinţează compania Digital Equipment Corporation (DEC), unde fabrică pentru
început module logice tranzistorizate. Aceste plăci cu circuit imprimat, numite Flip Chips, puteau fi utilizate la
construcţia unor structuri logice specializate de control. Astfel a fost realizat primul calculator construit de DEC,
maşina pe 18 biţi PDP1, bazată pe arhitectura TX-0. La Computer Museum din Boston poate fi admirat acest
model, pe care rulează Space War - primul joc pe calculator din lume.
În următorii ani sunt lansate pe piaţă noi versiuni îmbunătăţite, care în cele din urmă vor forma familia
de calculatoare PDP (o succesiune de modele culminând cu PDP15). În paralel, DEC construieşte alte două
familii de sisteme - una cu dimensiunea cuvântului de 12 biţi (având ca model reprezentativ PDP8, desemnat ca
fiind primul minicalculator si vândut în 1967 cu circa 9000 de dolari) şi alta pe 36 de biţi (modelul PDP10 fiind bine
cunoscut ca un mainframe lucrând în timp partajat).
Concernul IBM construieşte la rândul său primul calculator cu tranzistori, transformând modelul 709 în
7090 (sau 709 I). Urmaşul imediat 7094 aduce ca noutate modulul specializat pentru calcule în virgulă flotantă,
destinat aplicaţiilor ştiinţifice. Pentru afaceri, IBM construieşte un mic sistem (numit 1401) care utilizează
11
Arhitectura calculatoarelor CAPITOLUL I

aritmetica BCD (binar codificat zecimal). Acesta este considerat precursorul majorităţii calculatoarelor de
buzunar.
Compania CDC (Control Data Corporation) îşi face debutul pe piaţa calculatoarelor transformând în
produs comercial un model destinat aplicaţiilor militare. CDC impune pe piaţă două familii de sisteme: seria 3000,
cu maşini pe 24 de biţi şi seria 6000 cu maşini pe 60 de biţi. Modelul 6600, proiectat de Seymour Cray, este
considerat a fi unul dintre primele supercalculatoare moderne.

Circutele integrate - generaţia 3


Descoperirea modalităţii de obţinere a tranzistorilor prin combinarea a două materiale semiconductoare
pe un suport de siliciu, va permite ca un întreg panou cu logică cablată al unui calculator să fie înlocuit cu un
simplu circuit, având o suprafaţă de câţiva centimetri pătraţi, un consum energetic foarte redus şi o fiabilitate
remarcabilă. Funcţie de numărul de componente electronice elmentare pe care le înglobau funcţional, circuitele
integrate s-au realizat folosind pe rând tehnologiile SSI (Small Scale Integration – integrare pe scară redusă),
MSI (Medium Scale Integration – integrare pe scară largă) sau VLSI (Very Large Scale Integration – integrare pe
scară foarte largă).
Având la dispoziţie această nouă descoperire a electronicii, trecerea de la mainframe la microprocesor
nu se va face direct, ci prin parcurgerea etapei intermediare a minicalculatoarelor, definite ca fiind "sisteme de
calcul de uz general, cu lungimea cuvântului cuprinsă între 8 şi 32 de biţi, având cel puţin 4096 cuvinte de
memorie şi un preţ sub 20000 de dolari". Acestea vor deveni accesibile - mai ales din cauza preţului de vânzare
şi a gabaritului - pentru utilizarea în fiecare departament al unei companii sau în numeroase aplicaţii industriale de
conducere a proceselor în timp real.
Unul din primele minicalculatoare a fost modelul PDP 5, introdus de DEC în 1964. Cu toate că şi
modelele PDP10 sau 15 includ în structura lor şi circuite integrate, prima maşină DEC integral construită cu chip-
uri de siliciu este PDP 8I (1966). Aceasta moştenea calităţile celui mai de succes calculator construit de firmă
până atunci, dar şi unele limitări arhitecturale ale predecesorului său. De aceea, se construieşte rapid (în 1969)
PDP 11, un succesor al modelelor PDP 8 şi PDP15, capabil să lucreze pe 16 biţi şi să adreseze direct 256 KB de
memorie, utilizabil mai ales pentru aplicaţii de procesare a textelor. Ca şi IBM360, PDP11 va fi părintele unei
familii de calculatoare, destul de diversificată (spre exemplu, modelul 11/05 era destinat controlului automat, pe
când modelul 11/70 era un superminicalculator). Totuşi, datorită arhitecturii sale robuste, încă mulţi ani va
supravieţui şi modelul PDP8, chiar fabricat şi sub forma unui singur chip (microprocesorul Intersil 6100).
Succesorul lui PDP 11 şi PDP 10 (numit şi DECSystem 20) a fost VAX (Virtual Arhitecture Extension), o
maşină pe 32 biţi care înglobează experienţa celor două familii anterioare. Prima versiune, VAX - 11/780 (1978),
emula printr-o unitate de comandă microprogramată un PDP11.
Cu timpul, calculatoarele VAX, proiectate ca mini-mainframe, devin principala linie de producţie DEC
din anii 80, fiind lansate cu succes pe piaţă diferite versiuni, de la staţii de lucru la sisteme multiprocesor. Ele vor fi
înlocuite ceva mai târziu cu procesoarele RISC pe 64 de biţi Alpha. Nu numai DEC a fabricat însă
minicalculatoare. De exemplu, Data General a produs familia Nova, iar Hewlett - Packard, seria HP2100.
IBM a înlocuit în 1965 maşinile 1401 şi 7090 cu familia arhitecturală 360, conţinând maşini compatibile
software, însă având diferite nivele de complexitate, performanţe şi costuri, destinate atât aplicaţiilor ştiinţifice, cât
şi afacerilor. Cel mai simplu membru - IBM 360/20 - avea o singură memorie internă pe toruri de ferită cu o
capacitate de 8 kilocuvinte, pe când modelul 360/91 dispunea de memorie secundară cu mare capacitate, unitate
de calcul în virgulă flotantă rapidă şi numeroase periferice ataşate. Acesta din urmă era de 300 de ori mai rapid
decât primul. Calculatoarele aveau acelaşi set de instrucţiuni şi - începând cu modelul 360/40 - şi acelaşi sistem
de operare - OS/360. Modelul 360/85 va fi primul calculator cu memorie cache. Un alt element de noutate al
acestor maşini este virtualitatea lor, adică acea capacitate a sistemului de operare de a emula pentru fiecare
utilizator câte o maşină virtuală, exclusiv la dispoziţia acestuia. Seria 360 va fi succedată de seriile 370, 4300,
3080, 3090, etc, toate având aceleaşi caracteristici arhitecturale de bază.
Concernul IBM nu se va limita însă numai la construcţia de calculatoare. La sfârşitul anilor 1970 vor fi
lansate pe piaţă cu mare succes unităţile de floppy disk, casele de marcat computerizate pentru supermarket - uri
şi maşinile automate de numărat bancnote.
Primul supercalculator ştiinţific este considerat TIASC (Texas Instruments Advanced Scientific
Computer), o maşină complexă, cu multe caracteristici interesante. Pentru a asigura o viteză mare de procesare
pentru vectori lungi de date, TIASC utilizează tehnica 12 pipeline de prelucrare a instrucţiunilor, adresarea
Arhitectura calculatoarelor CAPITOLUL I

întreţesută a memoriei şi renunţă complet la întreruperi (pentru a reduce la maxim ciclul de prelucrare al
instrucţiunilor). TIASC a fost utilizat pentru aplicaţii speciale, cum ar fi de exemplu analiza datelor seismice pentru
detectarea zăcămintelor de petrol.
Istoria tehnicii de calcul reţine şi alte realizări remarcabile ale acestei epoci. Astfel, CDC-Cyber, o
versiune integrată a supercalculatoarelor 6600 şi 7600, încearcă să devină o maşină ştiinţifică pornind de la un
model comercial uzual, la care se adaugă instrucţiuni pentru procesarea şirurilor de caractere şi pentru calcul cu
numere BCD. Nefiind o reuşită deplină, compania CDC continuă construcţia calculatoarelor gigant cu modelul
Star - 100, care însă nu se va vinde. Acest lucru îl determină pe deja celebrul Seymour Cray să-şi înfiinţeze
propria sa companie de supercomputere.
La Universitatea din Ilinois a fost dezvoltat modelul ILLIAC. Versiunea ILLIAC III dispunea de un
procesor paralel şi era o maşină destinată analizei fotografiilor obţinute într-o cameră nucleară. Modelul ILLIAC
IV a contribuit la punerea la punct a unei tehnologii pentru obţinerea chip-urilor de memorie cu semiconductori,
asemănătoare cu cea a procesoarelor. Rezultatul cel mai important al acestor cercetări este însă indiscutabil
primul calculator comercial masiv paralel, modelul STARAN, contruit în 1967, care conţinea 8192 procesoare
cuplate între ele într-o reţea sofisticată de comunicaţie. O versiune modernă a acestuia este utilizată şi astăzi
pentru sistemele radar ale avioanelor militare.

Microprocesoarele - generaţia 4
Tehnologia de integrare pe scară largă (VLSI) a permis înglobarea într-un singur chip a zeci sau sute de
mii de componente electronice discrete. Dacă în tehnologia LSI un calculator putea fi construit modular, fiecare
modul fiind reprezentat de către un singur circuit integrat, odată cu noile chip-uri VLSI apare posibilitatea de a
integra într-unul din acestea chiar întreaga unitate centrală a calculatorului. Apare astfel microprocesorul,
descoperirea care poate fi comparată, ca efecte la scara istoriei, cu invenţia tiparului sau utilizarea forţei aburului.
Cum în scurt timp procedura de proiectare a circuitelor VLSI devine o tehnică normalizată, iar accesul la
instrumentele de proiectare asistată (CAD) este asigurat, obţinerea unui nou circuit integrat (inclusiv simularea şi
testarea sa funcţională) devine posibilă cu investiţii foarte mici, chiar sub nivelul de 10000 de dolari.
Intel Corporation a fost fondată în 1969 de către Bob Noyce şi Gordon Moore, cu scopul de a produce
memorii semiconductoare pentru mainframes. Aici va fi realizat în 1971, de către Hoff şi Fredrico Fagin (cu o
contribuţie esenţială a lui Stanley Mazor), primul microprocesor pe 4 biţi - Intel 4004, care era destinat să
constituie baza unui calculator de birou şi integra circa 2300 tranzistori.
În anul următor este produs Intel 8008, microprocesor pe 8 biţi, destinat controlului unui terminal. Din
fericire pentru viitorul lui Intel, fabricantul terminalului renunţă la utilizarea circuitului 8008 şi compania este
obligată să-i găsească altă destinaţie. Intel obţine în scurt timp două noi variante îmbunătăţite de
microprocesoare: modelele pe 8 biţi 8080 (1974) şi 8085.
Motorola 6800 va fi primul microprocesor pe 8 biţi ai companiei omonime, comparabil ca performanţe cu
8080, dar având cu totul altă arhitectură. Acesta circuit va declanşa o competiţie acerbă pentru întâietatea pe
piaţă, care pentru o bună perioadă de timp va diviza lumea informatică în două emisfere: Motorola şi Intel.
Companii mai mici se vor lansa şi ele pe acest câmp concurenţial. Faggin va părăsi Intel şi va fonda în
1974, împreună cu Ralph Ungerman, compania Zilog. Aici va construi şi lansa în 1976 modelul Z80, perfect
compatibil cu 8080, dar cu mai multe registre şi un set îmbogăţit de instrucţiuni. Nu de acelaşi succes se vor
bucura însă modelele ulterioare Z8000 şi Z8. În mod similar, Chuck Peddle va părăsi Motorola şi va construi la
MOS Technology modelul 6502, care însă nu va mai fi compatibil cu 6800.
Perioada microprocesoarelor pe 8 biţi (1975-1980) este considerată epoca de aur a acestora. Acum a
sosit momentul pentru lansarea pe piaţă a calculatorului personal (personal computer - PC). Accesibilă
nespecialiştilor, ieftină şi cu un gabarit redus, acestă ultimă unealtă modernă a secolului XX va deveni
indispensabilă pe biroul orcărui om care doreşte să ţină pasul cu progresul.
La şase luni după introducerea lui Intel 8008, în Franţa se va construi un prim calculator bazat pe el,
denumit Micral. Acesta va fi repede uitat, pentru că in Statele Unite nu a avut nici un fel de succes, dar va
consacra termenul de microcalculator. Alt calculator bazat pe 8008 a fost Scelbi-8H, comercializat cu numai
565 de dolari. Totuşi, primul calculator personal este considerat Altair 8800, construit în 1975 de către Ed
Roberts, proprietarul unei companii din Albuquerque, numită MITS. Unul dintre primii programatori care
elaborează soft pentru acest PC este tânărul Bil Gates, care crează în iulie 1975 un interpretor de Basic. Foarte
13
Arhitectura calculatoarelor CAPITOLUL I

curând vor apărea pe piaţă şi vor avea un mare succes alte PC - uri, bazate pe unul din microprocesoarele pe 8
biti 8080, Z80, 6800 sau 6502: SWTP 6800, Apple I şi II, KIM - 1, Commodore PER, Sinclair ZX80, VIC - 20.
Tot compania Intel va fi cea care lansează cu succes pe piaţă primele modele viabile de
microprocesoare pe 16 biţi - 8086 şi extensiile sale 80186 şi 80286. În paralel este utilizată şi varianta hibridă
8088, care de fapt era un 8086 cu magistrala externă de 8 biţi.
Primul model Intel pe 32 de biţi este 80386. Succesorul său, Intel 80486, aduce ca noutăţi unitatea
distinctă de calcul cu virgulă flotantă şi suportul pentru memorie virtuală. Despre familia de procesoare Intel se
poate spune că nu este arhitectural consistentă: în ceea ce priveşte setul de instrucţiuni, compatibilitatea
ascendentă este asigurată de la 8086 în sus, însă compatibilitatea de sus în jos nu mai operează. Această
caracteristică asigură totuşi portabilitare programelor, în sensul posibilităţii transferării execuţiei lor de pe o
maşină mai veche pe oricare alta de generaţiile succesoare.
La un an de la lansarea lui Intel 8080, Motorola iese pe piaţă cu un competitor direct, modelul pe 8 biţi
6800. Cu toate că astăzi este general recunoscut că Motorola 6800 avea o arhitectură superioară lui Intel 8080,
întârzierea apariţiei sale pe piaţă şi o oarecare dificultate în utilizare îl va face să rămână în umbra acestuia din
urmă. De mai mult succes s-a bucurat în epocă procesorul 6502, construit de o parte din foştii membri ai echipei
Motorola, care au părăsit-o şi au înfiinţat MOS Technology. Acest circuit s-a impus prin utilizarea sa la
calculatoarele pe o singură placă (SBC - Single Board Computer), de tipul popularelor în acea vreme KIM şi
SYM.
Aceste progrese au permis multor ingineri sau studenţi să înveţe să folosească microprocesoarele şi să
încerce implementarea lor în noi aplicaţii. Printre ei se numărau şi tinerii Steven Jobs şi Steven Wozniak care -
având la dispoziţie un garaj şi câteva mii de dolari împrumutaţi - pun pe picioare compania care construieşte
Apple II, primul calculator personal bazat pe microprocesorul 6502.
Motorola încearcă să devină lider al competiţiei de-abia începută, producând modelul pe 32 biţi 68000,
însă Intel câştigă din nou, pentru că modelul pe 16 biţi 8086 a fost promovat mai bine pe piaţă şi în plus era total
compatibil ca soft cu mai vârstnicul 8080. Cu o arhitectură internă într-adevăr pe 32 de biţi, Motorola 68000 lucra
însă extern de 16 biţi şi era complet incompatibil cu 6800.
După încă un eşec cu versiunea 68010, pentru care nu s-a putut scrie un sistem de operare, Motorola va
recupera rapid din terenul pierdut în competiţia cu Intel. Astfel, modelul 68020 - care lucra integral pe 32 de biţi -
oferă suport pentru memorie virtuală printr-un coprocesor, Motorola 68030 înglobează acest coprocesor în
circuitul prncipal şi oferă memorie cache, iar Motorola 68040 dezvoltă performanţele lui 68030.
Firma DEC se lansează mai lent şi mai puţin spectaculos în competiţia microprocesoarelor. Ea oferă o
licenţă corporaţiei Intersil, care va produce varianta VLSI a procesorului PDP 8, numită 6100. Similar, Western
Digital va implementa în trei chip-uri modelul PDP11 şi va numi acest sistem PDP-11/03. Mai târziu DEC dezvoltă
propriul său microprocesor, care a echipat produselel VAXstation, fiind o implementare a maşinii VAX, sub
numele de MicroVAX.
Toate microprocesoarele menţionate până acum aveau arhitecturi de tip CISC (Complex Instruction Set
Computer - calculator cu set complex de instrucţiuni). Necesitatea asigurării unor viteze de lucru cât mai mari, cât
şi cerinţele de simplificare a setului de instrucţiuni şi a logicii aferente acestuia, determină introducerea unor
modificări arhitecturale remarcabile, care duc la apariţia microprocesoarelor RISC (Reduced Instruction Set
Computer - calculator cu set redus de instrucţiuni).
Reducerea setului de instrucţiuni duce la mărirea dimensiunii codului de program, pentru că unele
instrucţiuni uzuale în arhitecturile CISC vor trebui emulate acum prin secvenţe consistente de instrucţiuni simple,
dar - per global - creşte viteza de procesare a unităţii centrale. Un prim astfel de microprocesor a fost SPARC,
construit la Berkeley UC. La puţin timp apare MIPS R2000, construit la Universitatea Stanford, iar IBM propune
modelul său RISC 2000. Astăzi există serioase controverse privind întâietatea celui care a stabilit conceptul
RISC. În realitate, acest concept a existat încă de la stabilirea primei arhitecturi de calculator, iar în continuare nu
s-a făcut decât trecerea de la acea idee la implementarea ei.
Performanţele procesoarelor RISC devin notabile. Maşina pe 64 de biţi Alpha, fabricată de DEC, ajunge
să execute câteva sute de milioane de instrucţiuni pe secundă (MIPS). Între timp, Intel intră pe piaţa arhitecturilor
RISC cu i 860, care iniţial a fost un proiect secret ce urmărea integrarea unor părţi din arhitectura HP în viitoarele
procesoare Intel.
În categoria arhitecturilor RISC reuşite pot fi incluse şi circuitele Texas Instruments din seria TMS320
Cxx, care de fapt sunt DSP-uri (Digital Signal Processor14- procesoare digitale de semnale), utilizate până şi astăzi
Arhitectura calculatoarelor CAPITOLUL I

într-o gamă largă de aplicaţii: telefonia digitală, modemurile, echipamente pentru control automat industrial şi
altele.

Procesoarele paralele - generaţia 5


Am menţionat deja primul procesor masiv palalel comercial de succes, modelul Staran, vândut uneori şi
sub numele de ASPRO. Un alt procesor paralel celebru a fost MPP, construit de NASA pentru a prelucra uriaşele
cantităţi de date furnizate de către sateliţii circumtereştri. Acesta conţinea de fapt 16384 procesoare elementare
pe un bit, dispuse într-o reţea. De o proiectare similară a beneficiat şi modelul AMT DAP.
Un produs care a intrat încă de la lansarea pe piaţă în concurenţă cu circuitele DSP Texas Instruments a
fost transputerul. Acesta reprezintă o celulă de procesare paralelă, dispunând de mai multe canale de
comunicaţie ce pot fi configurate în diferite topologii de reţea. O astfel de soluţie a fost Connection Machine, o
dezvoltare a procesorului paralel MPP, care dispunea de o reţea suplimentară de comunicaţie, destinată rulării
datelor, cât şi de suport software pentru procesoare virtuale, ceea ce simplifică programarea aplicaţiilor care
manevrează volume foarte mari de informaţii.
Bazându-se pe unele rezultate obţinute de CalTech, Intel proiectează un multiprocesor ce consta într-o
reţea de până la maxim 128 de procesoare (fie 80286, 386 sau i860). Similar, pornind de la cercetări efectuate la
Carnegie Mellon, Intel construieşte procesorul sistolic, numit Warp, cât şi maşina Paragon, care combină
facilităţile de comunicaţie ale lui Warp cu puterea de calcul a lui i860.

1.4. Evoluţia istorică a arhitecturilor pentru calculatoare

Dacă examinăm arhitecturile sistemelor de calcul construite în acest secol, am putea realiza din nou o
clasificare a lor în şase generaţii distincte:
 Generaţia 0 - maşinile electromecanice (cu roţi dinţate, motoare, relee electromagnetice), între anii
1920 – 1950;
 Generaţia 1 - calculatoarele cu tuburi electronice, între 1940 – 1960;
 Generaţia 2 - calculatoarele cu tranzistori, între 1960 – 1970;
 Generaţia 3 - calculatoarele cu circuite integrate TTL (logică integrată pe scară mică, medie şi largă),
între anii 1970 şi 1980;
 Generaţia 4 - calculatoare cu circuite integrate VLSI (tehnologie CMOS capabilă de a plasa o
întreagă unitate centrală într-un chip), între anii 1975 şi prezent;
 Generaţia 5 - sisteme de calcul paralele (tehnologie CMOS capabilă de a plasa mai multe procesoare
într-un singur chip) , între anii 1980 şi prezent.
Între aceste generaţii există întrepătrunderi semnificative, pentru că noile tehnologii nu înlocuiesc peste
noapte pe cele vechi. Tranziţia către o nouă generaţie arhitecturală se declanşează de obicei atunci când sunt
atinse limitele tehnologice ale predecesoarei. Se observă că în faza iniţială a fiecărei astfel de tranziţii,
arhitecturile generaţiei mai vechi nu se modifică, ele fiind numai implementate cu ajutorul unei noi tehnologii. Abia
după ce s-a trecut peste această primă etapă sunt demarate cercetările pentru identificarea posibilităţilor
arhitecturale suplimentare oferite de noua tehnologie.
Pe parcursul primelor trei generaţii enumerate mai sus (zero, unu şi doi), proiectarea arhitecturală a
fost în totalitate liberă, pentru că fiecare circuit al calculatorului era construit din componente electronice
elementare, preponderent analogice, astfel incât proiectanţii aveau la dispoziţie numeroase opţiuni. Dimpotrivă,
generaţiile trei, patru şi cinci nu reprezintă decât diverse modalităţi - este adevărat că din ce în ce mai evoluate -
de a încadra dispozitivele caracteristice celei de-a doua generaţii în spaţii mult mai mici.
Pentru că dezvoltarea producţiei de circuite unicat devenise prea scumpă, începând cu a treia
generaţie producătorii de componenete au început să furnizeze pentru calculatoare module prefabricate. De
acum înainte calculatoarele se obţin pur şi simplu prin asamblarea unor dispozitive numerice specializate: porţi
logice, circuite basculante bistabile, regiştri, multiplexoare, sumatoare şi chiar unităţi aritmetice şi logice complete.
Prin nenumăratele posibilităţi de combinare a acestor elemente funcţionale, flexibilitatea proiectării devine
remarcabilă. În acei ani, oricine stăpânea bine logica binară şi avea unele cunoştinţe de electronică putea
construi un calculator. Costul proiectării scade considerabil şi - mai ales după înlocuirea memoriilor pe ferită cu

15
Arhitectura calculatoarelor CAPITOLUL I

cele bazate pe semiconductori - proliferează din ce în ce mai mult modelele noi pe care numeroase campanii,
unele fără nici o experienţă în domeniu, se angajează să le lanseze pe piaţă şi să le comercializeze.
Un factor care a favorizat această explozie arhitecturală a calculatoarelor a fost lipsa unei oferte largi de
software. Sistemele de operare au progresat lent, iar limbajele de programare de nivel inalt devenite astăzi
clasice s-au impus treptat şi cu destule reticenţe. Până a fi obişnuiţi să recurgă la soluţia achiziţionării de soft
comercial, clienţii erau atraşi îndeosebi să cumpere arhitecturi de calcul noi, care erau într-adevăr oferite pe piaţă
la preţuri atrăgătoare, dar utilizau doar limbaje de asamblare sau compilatoare primitive.
Paradoxal, dar se poate spune că generaţia a patra aduce cu ea chiar un regres arhitectural, pentru că
proiectarea unui computer se întoarce - într-un anume sens - la nivelul tranzistor. Afirmaţia se bazează pe
constatarea că proiectanţii de circuite integrate nu se mai limitează să fabrice pur şi simplu chip-uri sau module
specializate, ci încearcă să concentreze în pastila de siliciu chiar un întreg calculator. Continuând seria
contradicţiilor, se constată o creştere indirectă a costurilor de proiectare arhitecturală, datorată investiţiilor mari în
tehnologie, pe când preţurile de fabricaţie ale componentelor propriu-zise ale calculatorului scad spectaculos.
Înaintea generaţiei a patra, costul producerii hardware-ului era foarte apropiat de cel al proiectării. De
acum încolo însă, costurile de producţie vor fi mult mai mici decât cele ale proiectării, iar marja beneficiului pe
unitatea fabricată va scădea. În consecinţă, dacă în trecut era profitabil să se producă şi să se vândă câteva
exemplare dintr-un model nou, de acum înainte proiectarea scumpă nu se mai poate amortiza decât prin
producerea şi vânzarea a mii, zeci de mii sau chiar milioane de exemplare din produsul propus pieţei. Crearea
unei asemenea pieţe uriaşe impune şi diversificarea ofertei de soft, pentru că gama aplicaţiilor rezolvabile cu
calculatorul trebuie lărgită, în scopul creşterii atractivităţii acestuia. În plus, preocupările de asigurare a
compatibilităţii programelor trec adeseori chiar în faţa celor de creştere a performanţelor. Furnizorii de hard
lărgesc oferta de programe de aplicaţii, ceea ce măreşte însă şi mai mult costurile de dezvoltare ale noului
produs, astfel încât se intră într-un cerc vicios.
Datorită problemelor de mai sus, generaţia a patra i-a pus pe fabricanţii de sisteme de calcul în faţa unei
mari dileme: să opteze între a proiecta o arhitectură originală de procesor sau de a cumpăra una imediat
disponibilă. Prima alegere implica o investiţie majoră, cu mari riscuri, având însă ca avantaj perspectiva de a
acapara cu noul produs un segment important de piaţă. A doua opţiune putea aduce însă beneficii imediate cu o
investiţie minimă, necesară numai pentru a fabrica şi vinde „clone” ale unor produse deja consacrate. Singura
dificultate în acest al doilea caz consta în a impune produsul copiat pe o piaţă unde deja „originalele” sunt
cunoscute şi se vând. Punând în balanţă cele două alternative, fabricarea şi vânzarea unui mare număr de
produse compatibile cu unul etalon părea totuşi mai rapid aducătoare de profit. Datorită unor astfel de decizii
pragmatice, pe parcursul generaţiei a patra are loc transferul celei mai mari părţi a activităţii de proiectare a
procesoarelor de la producătorii tradiţionali de calculatoare (Univac, Control Data, Honeywell, Remington, Sperry,
RCA, Singer) către companiile producătoare de circuite integrate. Astfel, alături de câteva companii (IBM, DEC
ş.a.) care au făcut faţă, în oarecare măsură, acestei tranziţii, liderii de piaţă devin noii fabricanţi de chip-uri: Intel,
Motorola, Texas Instruments etc.
Acum poate fi mai uşor explicat şi pasul înapoi în complexitatea arhitecturală, semnalat mai devreme.
Dincolo de restricţiile tehnologice impuse şi de experienţa mai redusă în calculatoare ale fabricanţilor de circuite
integrate, datorită îmbrăţişării fără rezerve de către aceştia a unei tehnologii VLSI încă imature, au fost sacrificate
unele performanţe de bază care până acum puteau fi oricând asigurate cu un număr suficient de porţi logice.
Restricţiile tehnologice impuse în primul rând de cerinţa ca unitatea centrală să fie integrată într-un singur circuit,
au dus în primă fază la limitarea complexităţii şi deci şi la scăderea performanţei globale. Din fericire, soluţia
creşterii gradului de integrare pe chip (care a ajuns la peste 10 milioane tranzistori) vine să compenseze aceste
impedimente, ceea ce face ca astăzi un microprocesor să fie competitiv chiar cu cele mai performante procesoare
mainframe. Singurele avantaje pe care „bătrânele” calculatoare medii sau mari le mai deţin încă se referă la
domeniul mai larg al aplicaţiilor pe care acestea le rezolvă sau la unele facilităţi de acces la baze de date imense.
În alte direcţii, cum ar fi de exemplu derularea operaţiilor de I/E, superioritatea acestora faţă de microprocesoare
se datorează mai mult implementărilor subsistemelor de transfer al datelor decât performanţelor arhitecturale.
Dintr-un alt punct de vedere, generaţia a patra mai poate fi numită şi cea a standardizării şi etalonării
arhitecturilor. Faptul că o companie de calculatoare a putut lansa rapid şi ieftin pe piaţă un nou model, utilizând un
microprocesor standard cumpărat, a dus la scăderea interesului pentru concepţia unor arhitecturi originale. Un
astfel de demers ar fi necesitat construcţia unui nou circuit VLSI şi a unei infrastructuri software adecvate, ceea
ce implică cheltuieli foarte mari. Chiar şi astăzi, numai câteva
16 companii au puterea financiară de a lansa astfel de
Arhitectura calculatoarelor CAPITOLUL I

investiţii. Se explică astfel persistenţa pe piaţă a celor două familii (tradiţionale) de PC-uri: cele compatibile IBM,
echipate cu microprocesoare Intel şi cele compatibile Apple - MacIntosh, cu microprocesoare Motorola. Este
adevărat că lângă ele se dezvoltă bine în ultimul timp şi procesoarele RISC (SPARC, MIPS, PowerPC, HP
Precision Arhitecture şi Alpha), însă acestea nu deţin încă segmente de piaţă semnificative.
Reducerea arhitecturilor de procesoare la un număr restrâns de norme a avut ca efect simplificarea
fabricaţiei calculatoarelor. Succesul unei companii de calculatoare va depinde de acum înainte mai ales de modul
cum ea îşi promovează produsele pe piaţă şi de competitivitatea preţului de vânzare. Iar pentru ca acesta din
urmă să fie cât mai mic, investiţiile nu se fac în inovarea proiectării sistemului, ci în reducerea costurilor sale de
asamblare.
Datorită acestor aspecte, pentru un anumit interval de timp, pe piaţă nu s-au putut oferi PC-uri cu
performanţe foarte înalte, iar această breşă a fost exploatată de către fabricanţii de staţii de lucru. Ei au oferit
maşini mai performante şi - evident - mai scumpe. Performanţa superioară a fost obţinută cu aceleaşi procesoare
ca şi la PC-uri, dar cu inovaţii în ceea ce priveşte dispozitivele externe: memorie cache, magistrale rapide, discuri
şi memorii de mare capacitate, suport pentru interfeţe grafice. Cu timpul, aceste îmbunătăţiri au fost preluate şi de
către PC-uri, asfel încât producătorii de staţii de lucru au fost primii constrânşi să dezvolte inovaţii arhitecturale. O
consecinţă a acestor preocupări este reprezentată de avântul din ultima vreme al arhitecturilor RISC.
Rezultatul competiţiei între PC şi staţiile de lucru este astăzi - ca şi în multe alte cazuri similare - unul
integrator: preţurile staţiilor de lucru se apropie de cel al PC-urilor, iar performanţele PC-urilor se apropie de cel al
staţiilor de lucru. Cele două familii de sisteme de calcul aproape că au fuzionat pe piaţă, singurul element care
încă le mai distinge fiind softul. Aceasta este una din explicaţiile pentru care în prezent se simte cu pregnanţă
nevoia trecerii la o nouă generaţie arhitecturală.
Dacă nu uităm că şi performanţele circuitelor VLSI de tip microprocesor tind să atingă limita lor de
saturaţie, este clar că progresul următorilor ani nu se poate obţine decât prin tranziţia la generaţia a cincea, cea
a utilizării procesoarelor multiple.
Mulţi specialişti consideră că elementul de distincţie între a patra şi a cincea generaţie este trecerea de
la integrarea pe scară foarte largă (VLSI) la cea pe scară ultraînaltă (ULSI), ceea ce permite mai ales înglobarea
– la un preţ concurenţial – a mai multor procesoare într-un singur chip. Totuşi, ca şi la tranziţiile anterioare între
generaţii, primele arhitecturi implementate aici sunt tributare modelelor anterioare. Astfel, supercomputerele cu
funcţionare masiv paralelă utilizează încă un set tradiţional de instrucţiuni, partajează o unică memorie de lucru
sau apelează la semantici secvenţiale pentru controlul interacţiunilor între procese. Mai mult, vom întâlni
multiprocesoare care lucrează cu un singur şir de instrucţiuni (SIMD) sau chiar încearcă să ascundă modul de
lucru paralel în spatele unui model simplu (SPMD).
Nu vom încheia acest paragraf fără a face câteva comentarii privind evoluţia suportul software al
calculatoarelor. Limbajele de programare uzuale susţin încă şi astăzi modelul clasic de programare simplă,
bazat de arhitectura von Neumann şi algoritmica structurată. Acest model presupune ca accesul la datele din
memoria de lucru să se facă secvenţial, timpii de acces la diferitele entităţi stocate fiind relativ egali.
Maşinile de calcul moderne dispun însă de o ierarhie a memoriei îmbunătăţită (cache, memorie virtuală).
Este important acum de a organiza calculele astfel încât ele să se beneficieze, de exemplu, de o maximă
localitate a datelor în cache (aşa cum vom vedea în capitolul corespunzător din această lucrare) sau să se evite o
excesivă paginare a memoriei de lucru (un acces disc poate scădea performenţele cu un factor cuprins între 1000
şi 100000!). Pentru satisfacerea unor astfel de exigenţe, de ajutor pot să fie în mare măsură compilatoarele
sofisticate, capabile să analizeze codul de program şi să rearanjeze buclele sau să predicteze efectuarea
salturilor. Aceste soluţii vor fi depăşite în curând de către tehnicile de programare inteligentă, mai ales atunci când
programatorul urmăreşte optimizarea codului pentru o anumită maşină.
Pe viitor, proiectanţii vor fi aceia care vor impune normele referitoare la transpunerea modelelor
lingvistice de programare în reprezentări arhitecturale complexe, cât şi cerinţele de performanţă pentru creatorii
de compilatoare. Impunând în fapt un set de restricţii, ei vor trebui totuşi să ţină seama că programatorii nu
trebuie constrânşi să realizeze soft dependent de o anumită arhitectură a procesorului, ci să aibă la dispoziţie un
model arhitectural fundamental. Modelul trebuie să fie suficient de general pentru a putea suporta implementări
ale oricărui tip de algoritm pe orice tip de maşină. Această cerinţă se numeşte asigurarea independenţei
arhitecturale a programatorului.
Pentru arhitecturile paralele, problema asigurării independenţei arhitecturale devine dificil de rezolvat,
până acum nefiind găsită o soluţie acceptabilă (modelele 17 de lucru cu maşini multiple, cum ar fi Linda şi PRAM, au
Arhitectura calculatoarelor CAPITOLUL I

o eficienţă destul de modestă). S-a încercat ocolirea găsirii directe a soluţiei prin adoptarea unui model secvenţial
de programare şi pasarea către compilator a sarcinii de a-l transpune într-o anumită arhitectură paralelă
(compilatoare paralelizatoare sau vectorizatoare).
Unele dintre aceste compilatoare reprezintă însă nişte nereuşite şi sunt numite „programe ale lui
Pavlov”. Ele impun programatorului să insereze în programul său directive de compilare şi comentarii, cu
promisiunea de a obţine o anumită eficienţă. În final însă, acesta va constata că a scris el însuşi un program
paralel, dar nu în codul principal, ci… în comentarii.
O abordare mai pertinentă presupune ca programatorul să aibă posibilitatea de a opta să lucreze la un
nivel de abstractizare care să-i releveze arhitectura maşinii numai atât cât el are nevoie ca să-şi poată optimiza
codul. Aceasta este, de exemplu, filosofia dezvoltării pentru paralelism a limbajelor C şi - într-o anumită măsură -
Fortran. Se obţin astfel extensii ale limbajelor specificate pentru aproape toate maşinile paralele de astăzi, însă
acestea nu sunt portabile pe alte arhitecturi. Putem să spunem astfel că o dilemă mai veche, care se menţine
însă şi astăzi, este acea de a alege între obţinerea portabilitatăţii cu o pierdere semnificativă de performanţă sau
de a atinge această performanţă, cu preţul pierderii portabilităţii.

1.5. Tendinţe în dezvoltarea tehnologiilor arhitecturilor de calcul

În locul unor prognoze privind evoluţia dispozitivelor de calculat, bazate pe evoluţiile istorice sumar
prezentate mai sus, dar supuse riscului de a putea fi contrazise în doar câţiva ani, preferăm să încercăm
extragerea câtorva tendinţe în devoltarea tehnologiilor de calculatoare.
Pentru început, să remarcăm faptul că evoluţia tehnologiei de calcul este puţin diferită faţă de tranziţia
standard a "generaţiilor". Astfel, putem considera că prima tehnologie de calcul, al cărei debut coincide cu
epoca abacului si a cifrelor scrise, urmărea să ofere ajutor memoriei umane în efectuarea prin operaţii simple cu
numere. Avantajul consta în faptul că operatorul se putea concentra asupra operaţiilor şi nu asupra numerele cu
care acestea lucrau. Se asigura astfel o precizie de calcul crescută, iar numerele manipulate puteau fi mult mai
mari. Aceste caracteristici tehnologice s-au menţinut câteva mii de ani.
A doua eră tehnologică, al cărei debut poate fi identificat cu construcţia primelor maşini mecanice de
calculat, introduce sistemele care au ele însele abilităţi aritmetice, astfel încât operatorul este degrevat de aceste
sarcini şi se poate dedica definitiv execuţiei unui calcul global mai complex. Aritmetica mecanizată a fost uzuală
câteva sute de ani.
A treia etapă tehnologică debutează odată cu maşina diferenţială a lui Babbage. În această etapă
câştigă în importanţă algoritmii şi tehnicile de elaborare ale acestora. Ca urmare a stocării în memoria maşinii atât
a datelor şi rezultatelor, cât şi a algoritmului, sunt eliminate erorile umane care apăreau la introducerea datelor, în
urmărirea paşilor de calcul sau la extragerea rezultatelor. Calculele sunt acum complet separate de numere, iar
algoritmica se găseşte cu acestea în acelaşi raport în care se găseşte – de exemplu – algebra cu adunarea şi
înmulţirea. Operatorul este complet liber să se dedice numai proiectării unor algoritmi mai complecşi, inclusiv prin
utilizarea cantităţilor simbolice.
Calcul simbolic permite unei maşini să înregistreze şi să repete procese mentale umane formalizate de
către operator. Odată ce a fost proiectat primul calculator automat fezabil (ENIAC), s-a simţit imediat nevoia ca el
să poată fi programat operând cu cantităţi simbolice (EDVAC). Această a patra etapă a dezvoltării tehnologice
este crucială pentru evoluţia tehnicii de calcul: se atinge acum nivelul maxim de precizie a calculelor, ce poate fi
obţinut de o maşină care nu dispune de capacitatea creatoare a minţii umane. Astfel, un set de instrucţiuni
elaborat de către om va fi executat întocmai de către calculator, orice eroare care va apărea datorându-se în
exclusivitate acestor instrucţiuni.
Ca o prognoză, se poate spune cu destulă siguranţă că evoluţiile tehnologice viitoare vor avea ca
principal obiectiv crearea unor calculatoare dotate cu abilitatea de a-şi crea ele însele programe, de a se
autoinstrui, deci de a avea inteligenţă artificială. Rezultatele obţinute până acum cu unele dintre aceste tehnici,
cum ar fi sistemele expert, logica fuzzy, reţelele neurale, algoritmii genetici sau teoria haosului, sunt promiţătoare
şi îndreptăţesc speranţele optimiştilor, care aşteaptă să aibă în curând acces la maşina dotată chiar cu viaţă
aritificială.
În ceea ce priveşte tendinţele de evoluţie ale viitoarelor arhitecturi de calculatoare, s-ar putea crede
că suntem deja pe cale de a trece la o nouă generaţie - cea a tratamentului paralel al datelor. Realitatea este
însă puţin diferită. Construcţia procesoarelor masiv paralele18 actuale este oarecum asemănătoare cu încercările
Arhitectura calculatoarelor CAPITOLUL I

de la sfârşitul secolului trecut de a creşte puterea automobilelelor prin montarea motoarele cu abur pe ele. Astăzi,
paralelismul este utilizat într-o manieră conservativă, pentru că se aleg soluţii prin care procesoare tradiţionale
sunt dotate cu unităţi de calcul multiple, ce pot funcţiona simultan. Un exemplu poate fi procesorul Pentium, care -
în unele cazuri - poate efectua simultan două operaţii aritmetice.
Tratamentul paralel poate fi îmbunătăţit prin includerea în acelaşi circuit a mai multor calculatoare
specializate. Este ceea ce propune Intel, care are în vedere construcţia unui microprocesor care să aibă atât
unităţi de prelucrare universale, capabile să execute secvenţe normale de instrucţiuni, cât şi câteva unităţi
specializate, efectuând eventual prelucrări pentru interfaţa grafică sau pentru procesarea unor date de intrare
speciale, de tip multimedia. Un astfel de procesor paralel eterogen va fi într-un evident contrast cu cele actuale -
omogene - construite din 10 până la 1000 de unităţi de calcul identice.
Viabilitatea arhitecturilor paralele va creşte probabil şi pe măsură ce tehnologiile vor avansa astfel încât
costurile acestora să devină competitive cu cele ale procesoarelor tradiţionale. Ca un argument, menţionăm că
maşinile cu arhitecturi paralele omogene destinate aplicaţiilor ştiinţifice sau inginereşti din generaţia curentă,
având putere de calcul cu unul sau două ordine de mărime mai ridicate decât la uniprocesoare, sunt cu două sau
trei ordine de mărime mai scumpe ca acestea. Ţinând cont şi de faptul că tehnologia cu care sunt realizate
maşinile paralele este aproape cu o generaţie în urmă (datorită timpilor lungi necesari proiectării şi implementării),
avem suficiente argumente pentru a concluziona că raportul cost/performanţă este astăzi net favorabil sistemelor
uniprocesor.
În consecinţă, potenţialii cumpărători de calculatoare preferă ori să mai aştepte câţiva ani, până când
sistemele uniprocesor vor oferi performanţe similare celor multiprocesor, fără însă a pretinde cheltuieli software
sau hardware suplimentare, ori să utilizeze sisteme cu un paralelelism limitat (multiprocesoare pe scară redusă
sau configuraţii în reţea), ori – în fine – să utilizeze acceleratori specializaţi (procesoare vectoriale sau matriceale,
de imagine sau DSP-uri).

19
Arhitectura calculatoarelor CAPITOLUL I

Figura 1.1. Progresul tehnologic şi evoluţia calculatoarelor

20
Arhitectura calculatoarelor CAPITOLUL I

Figura 1.2. Una din maşinile diferenţiale ale lui Babbage

Figura 1.3. Reprezentarea schematică a unei reţele neurale

21
Arhitectura calculatoarelor CAPITOLUL I

Figura 1.4. Un detaliu al calculatorului ENIAC

Figura 1.5. Un mainframe IBM din anii '60

22
Arhitectura calculatoarelor CAPITOLUL I

Figura 1.6. Arhitectura microprocesorului Intel 8086

Figura 1.7. Arhitectura microprocesorului Intel 80286

23

S-ar putea să vă placă și