Arhitectura Calculatorului



O scurta istorie a calculatoarelor
O data cu dezvoltarea societatii umane s-a ivit nevoia sa se pastreze o urma a numerelor care erau implicate in comertul care a inceput sa se dezvolte. Degetele de la mana, nodurile pe o sfoara, betisoarele, pietricelele si alte asemenea elemente au fost folosite in scopul memorarii acestor numere. Abacul a fost primul echipament rudimentar de calcul si se pare ca este originar din China dar a fost gasit si in alte culturi antice. Acest simplu "echipament" care foloseste bile si sarme pentru a reprezenta numerele si a face calcule este folosit si astazi.
Oameni si contributia lor
Despre un prim echipament de calcul s-au gasit surse care nominalizeaza pe un profesor de astronomie, Wilhem Schickard din Turbingen, Germania, care a desenat o ingenioasa masina de adunat, scazut, si chiar, pentru numere mai, mici, de inmultit si impartit. inainte ca proiectul sa fi fost terminat, atelierul a ars impreuna cu masina in constructie iar autorul a murit inainte sa construiasca un model nou.
Un mester mecanic a recreat mai tarziu dupa schitele dintr-o scrisoare acest instrument, insa intr-o varianta simplificata. Poate daca inventia initiala s-ar fi pastrat, alta ar fi fost istoria calculatoarelor!
Un pas inainte s-a facut prin descoperirea de catre scotianul John Napier in jurul anului 1600 a logaritmilor care permiteau ca operatiile de inmultire si impartire sa fie transformate in adunari si scaderi.
Folosind aceasta proprietate, Robert Bissaker inventeaza rigla de calcul care a fost folosita pana in anii 1970 in calculele ingineresti unde nu se cerea o precizie de multe zecimale.
Blaise Pascal matematician si filozof francez a inventat primul calculator numeric care putea sa adune si sa scada numere.Totusi, acest echipament se pare ca nu era la fel de evoluat cum a fost masina construita de Schickard. "Pascalina" cum a fost denumita, reusea sa aduca o economie de timp fata de calculele manuale. Principiul ei se pastreaza si astazi la instrumentele mecanice de contorizat cum ar fi contorul electric, kilometrajul la automobile etc..
Un limbaj de programare Pascal, a fost menit sa poarte numele lui, drept recunoastere a contributiei avute in evolutia calculatoarelor.
Mai tarziu, (1673), in Germania matematicianul Leibnitz- care impreuna cu Newton au creat calculul diferential- creaza o masina mecanica care efectua toate cele patru operatii aritmetice, dar aceasta nu a fost folosita pe scara larga datorita complicatiilor ce interveneau in constructia sa.
Francezul Jacquard, in 1808 construieste o masina automata cu cartele perforate ce era folosita la razboaiele de tesut. Inventia lui Jacquard a aratat ca datele trebuie sa fie codate pe cartele; cartelele trebuie sa fie unite intr-un lant pentru a crea o serie de instructiuni si aceste instructiuni pot automatiza tesutul razboiului. Instructiunile programabile s-au dovedit a fi un concept de mare importanta in calculatoarele moderne.
Anul 1822 aduce o noua masina de calcul prin englezul Charles Babbage.  Calculatorul avea o memorie mecanica pentru a memora rezultatele.
Datorita alocatiilor asigurate de catre guvern Babbage continua cercetarile si propune o noua masina "analitica" de calcul, la care intrarea datelor s-ar fi facut prin cartele perforate iar masina ar fi putut sa-si schimbe procedurile de operare. Ar fi fost necesare 6 masini de abur pentru punerea in miscare si ar fi ocupat un spatiu de marimea unui teren de fortbal putand sa calculeze tabele matematice si logaritmi!Masina bineinteles ca nu a fost construita niciodata dar conceptul ei mecanic a fost un predecesor al calculatoarelor electronice moderne.
Babbage a avut un partener, Augusta Ada, contesa de Lovelace si fiica poetului Lord Byron care i-a inteles ideile si a recunoscut valoarea acestora. In 1840 aceasta scrie, o serie de articole stiintifice care prezinta aceste idei noi  comunitatii stiintifice. Ea sugereaza chiar folosirea sistemului binar pentru memorare in locul sistemului zecimal. Totodata ea este considerata si "primul programator" din cauza ca a inclus  si repetarea automata a unor serii de calcule in functionarea masinii analitice  folosirea buclelor de program fiind si astazi un lucru curent folosit de catre programatori.
In 1850, George Boole, matematician englez realizeaza ca probleme matematice complexe pot fi rezolvate prin reducere la o serie de raspunsuri pozitive si negative. Sistemul binar care foloseste 1 pentru afirmatie si 0 pentru negatie poate fi folosit; in acest caz aceasta teorie de logica Boole devenind fundamentala pentru proiectarea circuitelor dintr-un calculator.
In anii 1880, dr. Herman Hollerich construieste primul perforator electromecanic de cartele folosind cartela cu 80 de coloane. Folosind acest sistem de cartele s-a realizat primul recensamant mecanizat al populatiei in anul 1890, in 1/4 din timpul cat se realiza pana atunci. Cartelele perforate folosite in calculatoarele numerice din anii 1970 se numeau cartele Hollerich si erau identice cu cele din secolul trecut.
Urmeaza o perioada de citiva zeci de ani in care nu se remarca nimic spectacular in domeniul calculatoarelor. Abia in 1927 la Massachusetts Institte of Technology (MIT), Bush si echipa sa construiesc o masina electromecanica care rezolva ecuatii diferentiale simple.
George Stibitz, cercetator matematician la Bell Telephone Laboratory intuieste ca logica Boole furnizeaza un limbaj natural pentru circuitele electromecanice.          Masina creata de el folosind baterii, becuri, sarme controla fluxul de electricitate prin DA sau NU (ON sau OFF). Numita calculator complex numeric masina aduna numere binare. Tot el impreuna cu un coleg, Samuel Williams demonstreaza cum folosind acest echipament si un teletype poate transmite rezultatele calculelelor la distanta de 250 mile.
John Atanasoff si Clifford Berry construiesc in 1931 un calculator de uz general numit ABC (Atanasoff, Berry Computer) pentru rezolvarea ecuatiilor algebrice. Cand Atanasoff contacteaza firma IBM care se ocupa de productia de masini de scris in scopul eventual al producerii de calculatoare de acest gen, compania IBM spune ca nu va fi niciodata interesata de masini de calcul electronice!!
Konrad Zuse in 1941 construieste in Germania un prim calculator electronic care foloseste logica binara cu toate ca nu auzise de G. Boolle. Pentru cresterea vitezei propune folosirea tuburilor electronice in locul releelor electromecanice. Hitler ii refuza o subventie de la stat in scopul terminarii proiectului. motivand ca razboiul va fi terminat inaintea finalizarii masinii.
Englezii construiesc in 1943 o masina care era capabila sa prelucreze peste 25.000 caractere pe secunda. Cercetarile sunt facute sub conducerea matematicianului de geniu Turing si in constructia ei sunt folosite tuburi electronice asa cum propusese germanul Zuse. Scopul acesteia era descifrarea mesajelor criptate cu masinile Enigma folosite de germani in al II-lea razboi mondial.
In 1950 Alan Turing construieste "Automatic Computing Engine ACE) care este considerat unul din primele calculatoare programabile.
In SUA  matematicianul Howard Aiken construieste un calculator programabil similar cu cel mecanic propus de Babbige numit MARK I. In  constructia sa sunt folosite relee electromecanice.Calculele cu numere de 23 de cifre necesitau 3 secunde si calcule manuale de 6 luni puteau fi facute intr-o zi. Calculatorul a fost folosit pentru calculul tabelelor balistice de catre militari.
Alti doi americani, John Mauchly si Prosper Eckert construiesc un calculator numit ENIAC care printre cele 100.000 componente electronice folosea 17.484 de tuburi electronice. ENIAC opera in sistemul zecimal, folosea cartele perforate dar era extrem de dificil de schimbat programul ,acesta fiind cablat manual cu ajutorul sarmelor. Constructia sa a fost terminata dupa sfarsitul razboiului si a fost folosita in calculelele pentru prognoza vremii., tunelele aerodinamice, tabele balistice si studiul razelor cosmice. Chiar inainte de terminarea constructiei sale cei doi constructori si-au dat seama ca ENIAC nu este perfect si au inceput proiectarea succesorului numit EDVAC care a fost terminat in 1949. Acesta folosea instructiunile memorate (programul in memorie) si folosea sistemul binar.
Dezvoltarea calculatoarelor care foloseau conceptul de program memorat a fost revendicat de mai multi inventatori dar pana la urma paternitatea ideii a fost atribuita lui John von Neumann, matematician de geniu care prin articolele si lucrarile sale legate de proiectul calculatorului. EDVAC a fundamentat aceasta idee.
In anii 1949 la Universitatea Harward se pun bazele dezvoltarii memoriilor pe    miezuri de ferita de catre Wang. Se pune astfel la dispozitia calculatoarelor un raport de memorie mai ieftin si de dimensiuni mai mari pentru programe mai complexe.
Manchly si Eckert in 1951 isi infiinteaza propria companie care va produce primul calculator comercial numit UNIVAC. Pana atunci calculatoarele erau folosite doar pentru aplicatii militare sau stiintifice .
In anul 1954 compania General Electric folosea un calculator pentru facturarea consumului de energie electrica al abonatilor. Alte companii existente ca Honeywell sau IBM realizeaza potentialul comercial al calculatoarelor si trec la realizarea propriilor calculatoare pe care sa le ofere la vanzare.
Marina Statelor Unite realizeaza in anii 1950-1952 primul simulator de zbor folosind un calculator ce efectua 50.000 de operatii pe secunda. Deasemeni tot un astfel de calculator era folosit la supravegherea spatiului aerian.
Alte inovatii apar in anii "50. Astfel Jack Kilby si Robert Hoyce descopera posibilitatea obtinerii circuitelor integrate pe un "chip" de siliciu. Aceste descoperiri vor fi introduse in 1962 in productie iar in 1964 in calculatoare.  IBM"System 360 este primul calculator care foloseste circuite integrate.
Miniaturizarea componentelor dezvoltata de diferiti inovatori va duce la succesul comercial al calculatoarelor. Apare si primul minicomputer produs de compania DEK si cunoscut sub numele de PDP-1. Avand dimensiuni mai modeste putea fi cumparat si folosit de companii mai mici care nu-si puteau permite achizitionarea unuia din categoria numita "mainframe".
Aceste calculatoare incep sa devina din ce in ce mai mari si puternice. Astfel amintim calculatorul ILLIAC IV care intra in categoria supercomputerelor precum si seria de calculatoare CRAY dezvoltate in 1976 de catre Seymour Cray, despre care se spune ca un exemplar si-a platit costul in prima ora de functionare cand aplicatia care rula a descoperit pe una din fotografiile de satelit un zacamant de petrol in valoare de cateva zeci de milioane de dolari.
Progrese se fac si in domeniul limbajelor de programare, incepand din anul 1950. Un grup de ingineri de la IBM dezvolta primul limbaj de programare orientat pe probleme algebrice numit FORTRAN (Formula Translator). In anul 1959 apare limbajul COBOL destinat afacerilor. Apar si alte limbaje precum BASIC, PASCAL,C, C++ etc..
in 1970 firma Intel creaza un chip de memorie care putea memora 1 kilobit de informatie. Un cercetator tot de la Intel, Ted Hof reuseste sa proiecteze si integreaza pe un singur circuit primul microprocesor pe 4 biti numit Intel 4004, ceea ce va duce la constructia primelor calculatoare numite "home computers" cum ar fi Commodore sau Apple.
Evolutia tehnologica a calculatoarelor
Calculatoarele s-au schimbat de-a lungul timpului; si-au crescut viteza, puterea si eficienta. Aceste schimbari au dus la includerea calculatoarelor in generatii functie de specificul lor.
Generatia I (1951-1959) - folosea sute de tuburi electronice, benzi magnetice pentru memorie externa si cartele perforate pentru intrarea datelor iar operatorii umani aveau rolul de a aseza o serie de comutatoare pe pozitiile 0 sau 1 conform schemelor cerute de program. Se folosea limbajul masina si de asamblare in programarea lor. Ca exemplu, din aceasta categorie este calculatorul UNIVAC I.
Generatia II. (1959-1965) - este caracteristica prin folosirea tranzistoarelor si elementelor semiconductoare pentru realizarea logicii calculatorului, memorie interna pe miezuri magnetice, banda magnetica dar si diskul magnetic care este introdus ca memorie externa. Cartelele magnetice ca suport pentru datele de intrare, cartele perforate si hartie cu suport pentru datele de iesire, incep sa fie folosite limbaje de nivel inalt in programele lor _FORTRAN, COBOL, BASIC - operatorii manevrau cartelele perforate. Ca exemplu, poate fi folosit calculatorul Honeywell 200.
Generatia III. (1965-1971) - foloseste circuitele integrate ca elemente logice, se impune folosirea discului magnetic ca memorie externa, monitoare si tastaturi  pentru intrarea si iesirea datelor, primele sisteme de operare complete care reduc la minimum interventia operatorilor umani , se introduce conceptul de "familie de calculatoare" ce permite adaptarea mai usoara a unui calculator la necesitatile beneficiarului prin extinderea si actualizarea echipamentului si softului. Exemplu tipic este IBM System 360.
Generatia a IV-a (1971 - prezent) - introduc circuitele cu grad mare de integrare care pot contine sute de mii si milioane de tranzistoare, se introduc microcalculatoarele si microprocesoarele ca Intel 386, 486, Pentium iar gama de aplicatii cuprinde aproape tot spectrul afacerilor si cercetarii stiintifice .
Pentru viitor se prevede dezvoltarea calculatoarelor pe baza inteligentei artificiale, sistemele expert fiind deja in uz si se spera sa se ajunga la adevaratele calculatoare care pot "gandi".