Aceasta lucrare prezinta principalele componente ale unui sistem de calcul precum si modul de functionare al acestora. Se va analiza modul în care diferitele componente ale unui calculator influenteaza performantele globale ale sistemului. Ca si exemplu de implementare se considera arhitectura calculatoarelor personale compatibile IBM.
Un sistem de calcul este un ansamblu de componente hardware (di 18418y243s spozitive fizice) si software (programe) care permit solutionarea unor probleme a caror rezolvare se poate descrise sub forma unui algoritm. Desi astazi exista foarte multe domenii si aplicatii în care calculatorul se dovedeste util, chiar indispensabil, sunt si probleme care nu pot fi rezolvate pe calculator. De exemplu alegerea partenerului ideal se pare ca nu este o problema algoritmizabila, desi au fost încercari chiar si în aceasta directie. În schimb sunt multe cazuri în care absenta calculatorului ar fi de neconceput. De exemplu în cazul unor procese tehnologice în care timpul de reactie trebuie sa fie sub o anumita limita, controlul nu s-ar putea realiza fara un calculator. De exemplu controlul centralelor nucleare, controlul unor procese chimice rapide, sau un stimulator cardiac depinde în mare parte de calculator.
Un sistem de calcul poate fi analizat din mai multe perspective: dintr-o perspectiva logica (structurala) si dintr-o perspectiva fizica.
Într-o abordare logica un calculator este un sistem stratificat pe mai multe nivele ierarhice. În figura 1 s-a reprezentat o posibila stratificare a functiilor unui calculator.
La nivelul cel mai de jos se afla masina fizica alcatuita din componente electronice si mecanice. La acest nivel se lucreaza cu secvente de biti care reprezinta coduri de instructiuni si date. Nivelul urmator, al limbajului de asamblare, permite programarea calculatorului prin instructiuni simple exprimate prin mnemonici. Fiecare mnemonica corespunde unui cod de instructiune. Lucrul la acest nivel necesita cunostinte detaliate cu privire la structura si modul de functionare al diferitelor componente ale calculatorului. Acest nivel este de obicei rezervat specialistilor care scriu drivere sau alte componente pentru sistemul de operare.
Sistemul de operare usureaza accesul la resursele calculatorului oferind un limbaj sau un mediu de operare si un set de rutine predefinite (drivere) pentru lucrul cu aceste resurse. Prin apelul unor functii sistem (eng. System calls) se pot efectua diferite operatii cu resursele fizice (ex: disc, tastatura, mouse, ecran, etc.) si logice (ex: ceasul sistem) ale calculatorului. Utilizatorul trebuie sa cunoasca doar interfata de acces la aceste functii (ex: parametrii de apel), fara sa fie necesara cunoasterea detaliata a resurselor utilizate. Mai mult, modificarile aduse în timp diferitelor resurse nu afecteaza modul de utilizare a apelurilor sistem.
Nivelul urmator este cel al limbajelor de nivel înalt si a mediilor de programare. Majoritatea limbajelor de programare dispun de o biblioteca bogata de functii prin care se pot utiliza resursele calculatorului. La acest nivel se lucreaza cu concepte mai abstracte (ex: fisier în loc de sectoare pe disc, structuri de date în loc de locatii de memorie) care simplifica semnificativ efortul de programare.
Pentru diferite tipuri de aplicatii exista produse program care faciliteaza accesul la resursele unui calculator si pentru personal ne specializat în domeniul calculatoarelor. Astfel un proiectant în domeniul mecanic sau în domeniul constructiilor utilizeaza calculatorul prin intermediul unor medii de proiectare asistata (CAD - Computer Aided Design). Acesti proiectanti opereaza cu comenzi specifice domeniului si mediului de proiectare utilizat. In aceeasi categorie se pot include programe de uz general precum produsele Windows Office (Word, Excel, Power Point) sau cele de navigare si comunicare pe Internet.
Cu cât se opereaza la un nivel mai înalt comenzile date calculatorului sunt mai abstracte si în general mai simple. Dar operatiile ce pot fi solicitate sunt mai limitate si ele afecteaza în masura mai mica functionarea intima a resurselor calculatorului. De exemplu cu un program de editare reusim sa scriem pe un suport extern de date, dar nu se poate controla sectorul sau pista pe care va avea loc înscrierea. De asemenea eventualele erori aparute sunt tratate de sistemul de operare.
Din punct de vedere fizic, conform modelului clasic definit de J. Von Neumann, un calculator se compune din 5 tipuri de componente:
dispozitive de intrare (ex: tastatura, mouse, interfete de proces, etc.)
memorie (interna si externa, volatila si nevolatila)
unitate aritmetico-logica
unitate de comanda
dispozitive de iesire (ex: ecran, imprimanta, etc.)
Aceste componente sunt conectate între ele prin una sau mai multe magistrale. Magistrala se defineste ca un mediu de comunicatie între componentele unui calculator. O magistrala se compune dintr-un set de semnale prin care se transmit date si comenzi. Transferul de date pe magistrala se face pe baza unui set de reguli. Aceste reguli stabilesc cine, când si cum comunica pe magistrala; stabilesc secventa de aparitie a semnalelor, interconditionarile existente între semnale si relatiile de timp între semnale.
Schema simplificata a unui calculator este redata în figura 2.
Un calculator actual, cum ar fi de exemplu un calculator personal are în mod uzual urmatoarele tipuri de componente:
procesor - îndeplineste functia de coordonare a sistemului; realizeaza citirea instructiunilor si pe baza lor prelucreaza un set de date
memoria interna - pastreaza instructiunile si datele în curs de prelucrare
controlorul de întreruperi - detecteaza anumite evenimente interne sau externe si alerteaza procesorul în vederea procesarii acestora
controlorul de "acces direct la memorie" - controleaza transferul de mare viteza al unor date între memorie si o interfata de intrare/iesire
interfata paralela - asigura conexiunea calculatorului cu un dispozitiv extern (ex: imprimanta) prin intermediul unui set de linii de date
interfata seriala - asigura conexiunea calculatorului cu un dispozitiv extern printr-un set limitat de linii (de obicei o linie/directie de transfer)
interfata cu dispozitivele externe de memorare (unitati de disc fix si flexibil, CD, DVD, etc.)
interfata video - permite afisarea datelor pe un ecran (tub cinescop sau LCD)
interfata de retea
interfata seriala de mare viteza - USB
sursa de alimentare
Dintre dispozitivele periferice tipice ale unui calculator se pot aminti:
tastatura
mouse, touchpad, joystick
ecran
disc magnetic rigid si flexibil, unitate CD, DVD, memory-stick
imprimanta, plotter
scaner, camera Web, camera digitala
În cadrul lucrarii de fata se vor identifica fizic aceste componente si se vor analiza variantele constructive si parametrii de performanta (ex: viteza, capacitate, caracteristici functionale, etc.).
Datorita caracterului lor versatil, aceste calculatoare au devenit cele mai utilizate calculatoare de astazi. Aceste calculatoare au la baza un procesor din familia Intel x86, sau un clon al acestuia. De exemplu procesorul Pentium IV are urmatoarele caracteristici functionale si de performanta:
este un procesor pe 32 de biti, adica majoritatea registrelor si a magistralelor interne au 32 de biti
este un procesor super-scalar, cu arhitectura de tip pipeline; permite executia mai multor instructiuni simultan într-un singur tact de ceas
lucreaza la o frecventa de ceas de 2-4GHz
are o memorie interna (memorie cache) de 256k-1Mocteti
spatiul de adresare maxim permis este de 4Gocteti
procesorul dispune de mai multe unitati de executie pentru aritmetica în virgula fixa, pentru virgula flotanta si pentru date de tip multimedia
procesorul foloseste diferite tehnici de executie în paralel a instructiunilor (SIMD, Pipeline, unitati multiple de executie, etc.)
Într-o configuratie uzuala, procesorul, memoria interna si o parte din interfetele de intrare/iesire se situeaza pe o placa comuna denumita "placa de baza" (eng. mother board). Restul interfetelor se monteaza în locatiile libere (eng. slots) aflate pe placa de baza. La variantele actuale majoritatea interfetelor uzuale sunt integrate pe placa de baza: interfata video, interfata de disc rigid si flexibil, interfata de retea, interfata de tastatura, interfata seriala si interfata paralela. Pentru extinderea sistemului sau pentru înlocuirea unor interfete cu altele mai performante se adauga placi, care se conecteaza pe una din magistralele sistemului. Într-un calculator personal actual se întâlnesc urmatoarele tipuri de magistrale:
ISA - cea mai veche si mai putin performanta magistrala; în multe cazuri se pastreaza doar pentru a asigura compatibilitatea cu interfetele mai vechi; datele se transmit pe 16 biti (32 la varianta extinsa)
PCI - o magistrala mai performanta; utilizeaza 32 de linii de date (64 la varianta extinsa);
AGP - o magistrala special dezvoltata pentru placile video de mare performanta
USB - nu este o magistrala în adevaratul sens al cuvântului, însa poate îndeplini acest rol; este o interfata seriala de mare viteza care permite conectarea unor dispozitive externe (ex: imprimanta, scanner, memory-stick, etc.) în timpul functionarii sistemului; are suport pentru plug-and play
Principalele functii ale placii de baza sunt integrate în câteva circuite integrate (eng. chipset), special proiectate pentru o anumita varianta de procesor. Aceste circuite solutioneaza transferul ultrarapid între procesor si memoria interna a calculatorului si asigura conexiunea cu principalele tipuri de interfete. În figura 3 s-a reprezentat schema de principiu a unei placi de baza, în care s-au folosit doua astfel de circuite.
|