|
Dupa cum se observa in figura 2.1., un sistem de calcul este format din 3 unitati de baza, care sunt conectate intre ele prin 3 cai separate de comunicatie, numite magistrale (mai des se foloseste termenul englezesc - bus).
Fig. 2.1.
Informatiile vehiculate in sistemul de calcul se impart in 3 categorii:
- date care trebuie prelucrate
- instructiuni care indica prelucrarile ce trebuie efectuate asupra datelor (adunare, scadere, comparare etc.)
- adrese care permit localizarea diferitelor date si instructiuni
Simplist spus, sarcina unui sistem de calcul este de a executa instructiuni (grupate in secvente coerente, care urmaresc un obiectiv bine stabilit, numite programe) asupra datelor; adresele joaca un rol auxiliar, dar nu mai putin important. Privind din aceasta perspectiva, vom analiza pe scurt scopul elementelor din figura 2.1.
Unitatea de memorie are rolul de a stoca atat instructiunile, cat si datele asupra carora vor opera instructiunile (operanzii). Instructiunile unui program trebuie aduse in memorie anterior inceperii executiei programului respectiv. De asemenea, unele date se vor afla in memorie inaintea pornirii prelucrarii, iar rezultatele prelucrarii se vor memora in timpul executiei programului. Aceasta memorie, realizata in diverse tehnologii de-a lungul evolutiei calculatoarelor, constituie suportul fizic necesar desfasurarii operatiilor executate de CPU. Structural, memoria este formata dintr-un numar mare de celule independente (numite si locatii), fiecare celula putand memora o valoare.
Pentru organizarea si regasirea informatiilor in memorie se folosesc asa-numitele adrese. O adresa este de fapt un numar care identifica in mod unic o locatie de memorie; cu alte cuvinte, fiecarei locatii ii este asociat un numar unic (adresa sa), in asa fel incat sa nu existe doua locatii diferite cu aceeasi adresa. Pentru accesarea unei informatii din memorie se furnizeaza adresa acelei informatii, iar circuitele de control al memoriei vor furniza continutul locatiei care reprezinta informatia ceruta. Similar se petrec lucrurile si la scrierea in memorie.
Tehnologic, unele dispozitive de memorie pot retine informatia numai cand sunt alimentate electric (si avem de-a face cu asa-zisa memorie volatila), in timp ce altele pastreaza informatia si atunci cand nu sunt alimentate electric, formand memoria nevolatila. Aceasta din urma este folosita in mod special la stocarea programelor pentru initializarea calculatorului si a sistemului de operare.
Unitatea centrala de prelucrare (CPU) are rolul de a executa instructiunile. Din acest motiv, CPU reprezinta componenta cea mai importanta a sistemului de calcul si poate controla activitatea celorlalte componente. Deoarece atat instructiunile, cat si datele prelucrate de instructiuni se gasesc in memorie, executia unei instructiuni presupune efectuarea de catre CPU a urmatoarei secvente de actiuni:
- Depunerea pe busul de adrese a unei informatii care localizeaza adresa de memorie ce contine campul de cod al instructiunii (faza de adresare).
- Citirea codului instructiunii si depunerea acestuia intr-un registru intern al decodificatorului de instructiuni. Aceasta informatie este vehiculata pe busul de date (faza de citire).
- Decodificarea codului instructiunii, in urma careia CPU va cunoaste ce instructiune are de executat si ca urmare pregateste modulele ce vor participa la instructiunea respectiva (faza de decodificare).
- Executarea efectiva a operatiei specificate de de instructiune - faza de executie propriu-zisa.
Dupa terminarea executiei unei instructiuni, se continua cu extragerea instructiunii urmatoare si trecerea ei prin secventele amintite s.a.m.d.
Dispozitivele de intrare/iesire (I/O - input/output), numite si dispozitive periferice, permit transferul informatiei intre CPU, memorie si lumea externa.
Functional, aceste dispozitive de I/O pot fi adresate (apelate) de catre CPU similar cu memoria, ele dispunand de asemenea de cate un set de adrese. In mod clasic, schimbul de informatii cu exteriorul se face sub controlul CPU, dar exista tehnici, care vor fi amintite mai tarziu, prin care accesul la memorie se poate face si cu o interventie minima a CPU (asa-numitele transferuri DMA - Direct Memory Access).
Cele mai utilizate periferice sunt: monitorul, tastatura, mouse-ul, discul dur, mediile de stocare portabile (discheta, CD, DVD etc.), imprimanta.
Busul de date este acea cale care leaga cele 3 blocuri functionale (o parte a sa poate sa iasa si in exteriorul sistemului) si pe care se vehiculeaza datele propriu-zise (numere sau caractere) sau instructiunile programului.
Busul de adrese este calea pe care sunt transmise de CPU adresele catre memorie, cand se face o operatie cu memoria (citire sau scriere), sau se vehiculeaza adresele dispozitivului de I/O in cazul unui transfer cu un periferic.
Busul de comenzi vehiculeaza semnalele de comanda si control intre toate aceste blocuri si astfel permite o sincronizare armonioasa a functionarii componentelor sistemului de calcul. In marea majoritate a cazurilor, semnalele de comanda sunt emise de catre CPU si servesc la controlul functionarii celorlalte componente.
Arhitectura de tipul von Neumann a fost o inovatie in logica masinilor de calcul, deosebindu-se de cele care se construisera pana atunci prin faptul ca sistemul trebuia sa aiba o cantitate de memorie, similar creierului uman, in care sa fie stocate atat datele, cat si instructiunile de prelucrare (programul). Acest principiu al memoriei a reprezentat unul din fundamentele arhitecturale ale calculatoarelor. Diferenta fundamentala consta in stocarea in memorie nu numai a datelor, ci si a programelor.
A inceput astfel sa apara din ce in ce mai clar care este aplicabilitatea memoriei. Datele numerice puteau fi tratate ca si valori atribuite unor locatii specifice ale memoriei. Aceste locatii erau asemanate cu niste cutii postale care aveau aplicate etichete numerotate (de exemplu 1). O astfel de locatie putea contine o variabila sau o instructiune. A devenit posibil ca datele stocate la o anumita adresa sa se schimbe in decursul calculului, ca urmare a pasilor anteriori. Astfel, numerele stocate in memorie au devenit simboluri ale cantitatilor si nu neaparat valori numerice, in acelasi mod in care algebra permite manipularea simbolurilor x si y fara a le specifica valorile. Cu alte cuvinte, se putea lucra cu entitati abstracte.
Calculatoarele ulterioare si mai tarziu microprocesoarele au implementat aceasta arhitectura, care a devenit un standard. In ciuda vechimii sale, arhitectura von Neumann nu a putut fi inlocuita pana azi.