y8t7td
1.1 Modelul Von Neumann de arhitectura a calculatoarelor
1.2 Organizarea memoriei interne
1.3 Reprezentarea informatiilor in memoria interna
1.4 Modelul functional al calculatoarelor
1.1 Modelul Von Neumann de arhitectura a calculatoarelor
Descrierea care urmeaza este o descriere a modelului Von Neumann de constructie
a calculatoarelor. Se pot aduce destule critici acestui model care domina sever
inca de la inceputurile masinilor de calcul electronic, dar el continua
sa fie singurul model functional.
Modelul Von Neumann defineste calculatorul ca pe un ansamblu format dintr-o unitate
centrala si o memorie interna. Unitatea centrala sau procesorul este responsabila
cu administrarea si prelucrarea informatiilor in timp ce memoria interna
serveste la depozitarea acestora. In terminologia calculatoarelor, depozitarea
informatiilor in memoria interna a calculatorului se numeste memorare.
Acest ansamblu unitate centrala plus memorie interna comunica cu exteriorul prin
intermediul unor dispozitive periferice. Dispozitivele periferice pot fi de intrare
sau de iesire in functie de directia in care se misca datele. Daca
datele sunt furnizate de dispozitivul periferic si transferate spre unitatea centrala,
atunci dispozitivul este de intrare precum sunt tastatura sau mausul. Daca datele
sunt generate de unitatea centrala si transmise spre dispozitivul periferic atunci
dispozitivul este de iesire precum sunt ecranul sau imprimanta. Exista si dispozitive
mixte de intrare/iesire precum sunt discurile pentru memorarea externa a informatiilor.
Tastatura calculatorului reprezinta un set de butoane (taste) inscriptionate care
ne permite transmiterea catre unitatea centrala a unor litere, cifre, semne de
punctuatie, simboluri grafice sau comenzi functionale. Mausul reprezinta un dispozitiv
simplu, mobil, care ne permite indicarea unor regiuni ale ecranului cu ajutorul
unui cursor.
In plus, mausul ne permite activarea regiunilor respective cu ajutorul celor
1-2-3 butoane ale sale.
Ecranul este un dispozitiv cu ajutorul caruia calculatorul comunica informatii
spre exterior. Aceste informatii apar sub forma de litere, cifre, semne de punctuatie,
simboluri grafice sau desene oarecare intr-o varietate mai mare sau mai
mica de culori. Informatia de pe ecran se pierde odata cu redesenarea acestuia.
Pentru transferul acestor informatii pe hartie si indosarierea lor
s-au creat alte dispozitive periferice, numite imprimante.
Memoria interna pierde informatiile odata cu oprirea alimentarii calculatorului.
Pentru a salva informatiile utile, precum si programele de prelucrare ale acestora
este nevoie de dispozitive de memorare permanente. Din aceasta categorie fac parte
discurile calculatorului. Exista mai multe modele de discuri precum discurile
fixe, discurile flexibile sau compact-discurile, fiecare dintre acestea avand
caracteristici, viteze de acces si capacitati de memorare diferite. Informatiile
salvate pe discuri pot fi incarcate din nou in memoria interna la
o pornire ulterioara a calculatorului. Va veti intreba desigur de ce este
nevoie de doua tipuri distincte de memorie: pentru ca discurile au viteze de acces
mult prea mici pentru a putea fi folosite direct de catre unitatea centrala.
Figura 1.1 Modelul constructiv al calculatoarelor Von Neuman.
Desi modelul constructiv de baza al calculatoarelor nu a evoluat prea mult,
componenta tehnologica a acestora s-a aflat intr-o permanenta evolutie.
Transformarea vizeaza la ora actuala viteza de lucru si setul de instructiuni
ale unitatii centrale, capacitatea si viteza de stocare a memoriei interne precum
si tipurile si calitatea dispozitivelor periferice.
1.2 Organizarea memoriei interne
Memoria calculatoarelor actuale este, din punct de vedere logic, o insiruire
de cifre binare, 0 sau 1. Alegerea bazei 2 de numeratie are in principal
ratiuni constructive: este mult mai usor si mult mai fiabil sa reprezinti un
principiu binar ca absenta/prezenta sau plus/minus decat unul nuantat.
O cifra binara este numita, in termeni de calculatoare, bit.
Bitii sunt grupati, opt cate opt, in unitati de memorare numite
octeti.
Iarasi, alegerea cifrei opt are ratiuni istorice: era nevoie de o putere a lui
doi care sa fie cat mai mare, pentru a putea permite transferuri rapide
intre diversele componente ale calculatorului (unitate centrala, memorie,
dispozitive periferice), dar totodata suficient de mica pentru ca realizarea
dispozitivelor implicate, cu tehnologia existenta, sa fie posibila. Cifra opt
avea in plus avantajul ca permitea reprezentarea tuturor caracterelor
tiparibile necesare la ora respectiva precum: literele, cifrele sau semnele
de punctuatie. Intr-un octet se pot reprezenta pana la 256 (28)
astfel de caractere. In prezent octetul este depasit datorita necesitatii
de reprezentare a caracterelor tuturor limbilor scrise din lume.
Pentru a accesa o informatie in memorie este nevoie de un mod de a referi
pozitia acesteia. Din acest motiv, octetii memoriei au fost numerotati unul
cate unul incepand de la 0 pana la numarul maxim de
octeti in memorie. Numarul de ordine al unui octet il vom numi pentru
moment adresa. Notiunea de adresa si-a extins semnificatia in ultimul
timp dar, pentru intelegerea acestui capitol, explicatia de mai sus este
suficienta.
Zona fizica de memorie rezervata unei anumite informatii se numeste locatia
informatiei respective in memorie. In unele dintre locatiile din
memorie putem pastra chiar adresa unor alte locatii din memorie. Informatia
memorata in aceste locatii se numeste referinta. Cu alte cuvinte, o referinta
este o informatie memorata intr-o locatie de memorie care ne trimite spre
(se refera la) o alta locatie de memorie. O locatie de memorie se poate intinde
pe mai mult decat un octet.
1.3 Reprezentarea informatiilor in memoria interna
Dupa cum ati putut observa din cele prezentate pana acum, in memoria
calculatorului nu se pot inscrie decat numere naturale. Mai precis,
fiecare octet de memorie poate memora un numar de la 0 la 28-1, adica 255. Orice
alta informatie pe care dorim sa o reprezentam in memoria calculatorului
trebuie redusa la unul sau mai multe numere naturale mici.
Aceasta trasatura a modelului actual de memorare introduce un pas suplimentar
de abstractizare in procesul de proiectare de aplicatii, si anume pasul
in care se construieste un model de reprezentare in memorie a datelor,
necesar aplicatiei.
Sa presupunem, de exemplu, ca o aplicatie necesita reprezentarea in memoria
calculatorului a unui set de culori. Pentru memorarea acestor culori este nevoie
de o conventie care sa stabileasca o corespondenta biunivoca intre setul
de culori si setul de numere naturale folosite la reprezentarea acestora. Corespondenta
este biunivoca pentru ca ea trebuie sa ofere posibilitatea de a regasi in
mod unic o culoare plecand de la un numar si, in acelasi timp, sa
ofere o reprezentare unica, sub forma de numar, pentru fiecare culoare. De exemplu,
putem pune in corespondenta culoarea neagra cu numarul 0, culoarea rosie
cu numarul 1, culoarea albastra cu numarul 2 si asa mai departe. Ori de cate
ori vom memora 2 vom memora albastru si ori de cate ori vom dori sa memoram
rosu, vom memora 1.
Ca rezultat al folosirii acestei abstractizari, datele aplicatiei devin dependente
de conventia de reprezentare utilizata. Presupunand ca o aplicatie construieste
in memorie o imagine grafica folosindu-se de o anumita corespondenta dintre
culori si numere, oricare alta aplicatie care vrea sa utilizeze imaginea respectiva
trebuie sa foloseasca aceeasi conventie.
O cale similara de rezolvare vom intalni si la reprezentarea caracterelor.
Caracterele sunt denumirea intr-un singur cuvant a literelor, cifrelor,
semnelor de punctuatie sau simbolurilor grafice reprezentate in memorie.
Este nevoie de o conventie prin care atasam fiecarui caracter cate un
numar natural memorabil intr-un octet.
In cazul reprezentarii caracterelor, exista chiar un standard international
care defineste numerele, reprezentabile pe un octet, corespunzatoare fiecarui
caracter in parte, numit standardul ASCII. Alte standarde, cum ar fi standardul
Unicode, reprezinta caracterele pe doi octeti, ceea ce le da posibilitatea sa
ia in considerare o gama mult mai larga de caractere.
Caracter Reprezentare pe un octet (ASCII)
A-Z 65-90 a-z 97-122
0-9 48-57
A,a 195,227
I,i 206,238
A,a 194,226
S,s 170,186
T,t 222,254
Tabelul 1.1 Un fragment din codurile ASCII si Unicode de reprezentare a caracterelor
grafice in memoria calculatoarelor.
Desigur, este greu sa tinem minte codul numeric asociat fiecarui caracter sau
fiecarei culori. Este nevoie de pasi suplimentari de codificare, care sa puna
informatia in legatura cu simboluri mai usor de tinut minte decat
numerele. De exemplu, este mult mai usor pentru noi sa tinem minte cuvinte sau
imagini. Dar sa nu uitam niciodata ca, pentru calculator, cel mai usor este
sa memoreze si sa lucreze cu numere.
1.4 Modelul functional al calculatoarelor
Fiecare calculator defineste un numar de operatii care pot fi executate de unitatea
sa centrala. Aceste operatii sunt in principal destinate memorarii sau
recuperarii informatiilor din memoria interna, calculelor aritmetice sau logice
si controlului dispozitivelor periferice. In plus, exista un numar de
instructiuni pentru controlul ordinii in care sunt executate operatiile.
O instructiune este o operatie elementara executabila de catre unitatea centrala
a unui calculator. O secventa de mai multe instructiuni executate una dupa cealalta
o vom numi program.
Instructiunile care compun un program trebuiesc si ele reprezentate in
memorie, la fel ca orice alta informatie, din cauza faptului ca unitatea centrala
nu are posibilitatea sa-si pastreze programele in interior. Pentru memorarea
acestor instructiuni este nevoie de o noua conventie de reprezentare care sa
asocieze un numar sau o secventa de numere naturale fiecarei instructiuni a
unitatii centrale.
Executia unui program de catre calculator presupune incarcarea instructiunilor
in memoria interna si executia acestora una cate una in unitatea
centrala. Unitatea centrala citeste din memorie cate o instructiune, o
executa, dupa care trece la urmatoarea instructiune. Pentru pastrarea secventei,
unitatea centrala memoreaza in permanenta o referinta catre urmatoarea
instructiune intr-o locatie interna numita indicator de instructiuni.
Modelul de executie liniara a instructiunilor, in ordinea in care
acestea sunt asezate in memorie, este departe de a fi acceptabil. Pentru
a fi util, un program trebuie sa poata sa ia decizii de schimbare a instructiunii
urmatoare in functie de informatiile pe care le prelucreaza. Aceste decizii
pot insemna uneori comutarea executiei de la o secventa de instructiuni
la alta. Alteori, este necesar sa putem executa o secventa de instructiuni in
mod repetat pana cand este indeplinita o anumita conditie
exprimabila cu ajutorul informatiilor din memorie. Numarul de repetari ale secventei
de instructiuni nu poate fi hotarat decat in momentul executiei.
Aceste ramificari ale executiei se pot simula destul de usor prin schimbarea
valorii referintei memorate in indicatorul de instructiuni.