Bazele informaticii.pdf
-
Author
irina-drajneanu -
Category
Documents
-
view
602 -
download
110
Embed Size (px)
description
Transcript of Bazele informaticii.pdf
-
Universitatea Titu Maiorescu
Facultatea de Informatic
Prof. univ. dr. Pau Valentin
Lector univ. dr. Apostolescu Tudor Ctlin
As. univ. ing. Stnescu Octavian
Curs pentru nvmntul la distan
Bucureti 2011
Bazele informaticii
-
2
Cuprins INTRODUCERE ........................................................................................................................... 5 UNITATEA DE NVARE 1 ................................................................................................. 11
1. Stocarea datelor .................................................................................................................. 11 1.1. Stocarea biilor ................................................................................................................ 11 1.1.1. Pori logice i circuite basculante bistabile ..................................................................... 11 1.1.2. Tehnici de stocare ........................................................................................................... 12 1.1.3. Sistemul de notaie hexazecimal ..................................................................................... 13 1.2. Memoria principal ......................................................................................................... 13 1.2.1. Organizarea memoriei principale .................................................................................... 14 1.2.2. Organizarea unei celule de memorie .............................................................................. 15 1.3. Dispozitive de stocare de mas ....................................................................................... 19 1.3.1. Discuri magnetice ........................................................................................................... 21 1.3.2. Discuri compacte ............................................................................................................ 25 1.3.3. Benzi magnetice .............................................................................................................. 26 1.3.4. nregistrri logice i fizice .............................................................................................. 26 1.4. Codificarea utilizat pentru stocarea informaiilor ......................................................... 27 1.4.1. Reprezentarea simbolurilor ............................................................................................. 27 1.4.2. Reprezentarea valorilor numerice ................................................................................... 28 1.4.3. Reprezentarea altor tipuri de date ................................................................................... 30 1.5. Sistemul binar de numeraie ........................................................................................... 31 1.5.1. Adunarea n binar ............................................................................................................ 31 1.5.2. Reprezentarea fraciilor n sistemul binar ....................................................................... 32 1.6. Stocarea numerelor ntregi .............................................................................................. 34 1.6.1. Notaia n exces ............................................................................................................... 34 1.6.2. Notaia n complement fa de doi .................................................................................. 35 1.6.3. Adunarea numerelor reprezentate n complement fa de doi ........................................ 38 1.6.4. Problema depirii superioare ......................................................................................... 39 1.7. Stocarea numerelor fracionare ....................................................................................... 40 1.7.1. Notaia n virgul mobil ................................................................................................ 40 1.7.2. Erori de rotunjire ............................................................................................................. 42 1.8. Erori de comunicaie ....................................................................................................... 43 1.8.1. Bii de paritate ................................................................................................................. 43 1.8.2. Coduri corectoare de erori .............................................................................................. 45
TEST AUTOEVALUARE 1 (Stocarea datelor) ....................................................................... 47 UNITATEA DE NVARE 2 .................................................................................................. 52
2. Manipularea datelor ............................................................................................................ 52 2.1. Unitatea central de prelucrare ....................................................................................... 52 2.2. Execuia instruciunilor ................................................................................................... 55 2.3. Execuia programelor ...................................................................................................... 60
-
3
2.4. Alte instruciuni .............................................................................................................. 61 2.5. Principii de proiectare pentru calculatoarele actuale ...................................................... 63 2.6. Prelucrare simultan ...................................................................................................... 64 2.7. Instruciuni aritmetice i logice ................................................................................... 65 2.8. Comunicaia ntre unitatea central i controlere ....................................................... 67 2.9. Comunicaia serial i paralel ..................................................................................... 69
TEST AUTOEVALUARE 2 (Manipularea datelor) ............................................................... 73 UNITATEA DE NVARE 3 .................................................................................................. 75
3. Sistemele de operare........................................................................................................... 75 3.1. Evoluia sistemelor de operare .................................................................................... 75 3.2. Arhitectura unui sistem de operare ................................................................................. 77 3.3. Coordonarea activitilor desfurate de calculator ........................................................ 81 3.4. Gestionarea proceselor concurente ................................................................................. 85
TEST AUTOEVALUARE 3 (Sisteme de operare)................................................................... 88 UNITATEA DE NVARE 4 .................................................................................................. 92
4. Algoritmii ........................................................................................................................... 92 4.1. Conceptul de algoritm .................................................................................................... 92 4.2. Reprezentarea algoritmilor ............................................................................................. 93 4.3. Dezvoltarea algoritmilor ................................................................................................. 96 4.4. Structuri iterative ............................................................................................................ 98 4.5. Structuri recursive......................................................................................................... 102 4.6. Eficien i corectitudine .............................................................................................. 103
TEST AUTOEVALUARE 4 (Algoritmii) ............................................................................... 107 UNITATEA DE NVARE 5 ................................................................................................ 111
5. Limbaje de programare .................................................................................................... 111 5.1. Perspective istorice ....................................................................................................... 111 5.2. Conceptele programrii clasice .................................................................................... 114 5.3. Module de program ...................................................................................................... 121 5.4. Implementarea limbajelor ............................................................................................. 123 5.5. Programarea declarativ ............................................................................................... 128
TEST AUTOEVALUARE 5 (Limbaje de programare) ........................................................ 132 UNITATEA DE NVARE 6 ................................................................................................ 139
6. Structuri de date ............................................................................................................... 139 6.1. Vectori .......................................................................................................................... 139 6.1.1. Vectori unidimensionali ............................................................................................... 139 6.1.2. Vectori multidimensionali ............................................................................................ 140
-
4
6.2. Liste .............................................................................................................................. 141 6.3. Arbori ............................................................................................................................ 150
TEST AUTOEVALUARE 6 (Structuri de date) .................................................................... 154 UNITATATEA DE NVARE 7 ........................................................................................... 157
7. Structuri de fiiere ............................................................................................................ 157 7.1. Fiierele secveniale ...................................................................................................... 157 7.2. Fiiere de text ................................................................................................................ 159 7.3. Fiiere indexate ............................................................................................................. 160 7.4. Fiiere dispersate (hashed files) .................................................................................... 161 7.5. Rolul sistemului de operare .......................................................................................... 162
TEST AUTOEVALUARE 7 (Structuri de fiiere) ................................................................. 164 UNITATEA DE INVATARE 8 ................................................................................................ 166
8. Structuri de Baze de date .................................................................................................. 166 8.1. Consideraii generale ................................................................................................... 166 8.2. Implementarea stratificat a bazelor de date ................................................................. 167 8.3. Modelul relaional ......................................................................................................... 169
TEST AUTOEVALUARE 8 (Structura bazelor de date) ...................................................... 181 UNITATEA DE NVARE 9 ................................................................................................ 183
9. Sistem informatic i sistem informaional ........................................................................ 183 9.1 Conceptul de informaie ................................................................................................ 183 9.2 Noiunea de sistem ........................................................................................................ 185 9.3 Sistem informatic .......................................................................................................... 190
TEST AUTOEVALUARE 9 (Sistem Informaional i Sistem Informatic de fiiere) ......... 196 BIBLIOGRAFIE ......................................................................................................................... 198
-
5
INTRODUCERE
Informatica este o disciplin care construiete baza tiinific pentru mai multe domenii,
ca:
proiectarea i programarea calculatoarelor;
prelucrarea informaiilor;
rezolvarea algoritmic a problemelor;
procesul algoritmic propriu-zis.
Prin urmare, nu putem reduce studiul informaticii la deprinderea modului de utilizare a
calculatoarelor actuale (eventual a PC-urilor), ci trebuie s nelegem att aria de cuprindere, ct
i dinamica unui mare numr de domenii nrudite.
a) Studiul algoritmilor
Algoritm = set de pai prin care se definete modul n care poate fi dus la ndeplinire o
anumit sarcin.
n domeniul calculatoarelor algoritmii sunt reprezentai prin programe. Aceste
programe formeaz software-ul, spre deosebire de calculatoarelor propriu-zise care poart
numele de hardware.
Pentru ca un calculator s poat duce la ndeplinire o anumit sarcin, trebuie (ca mai
nti) s se descopere i s se reprezinte sub form de program un algoritm pentru efectuarea
sarcinii respective.
Algoritmii ocup un rol central n informatic. Principalul obiectiv al acestor eforturi era
descoperirea unui set mic de instruciuni care s descrie modul de rezolvare a oricrei probleme
dintr-o anumit categorie. Unul dintre cele mai cunoscute rezultate obinute n acest domeniu
este algoritmul lui Euclid (descoperit n antichitate de matematicianul precizat).
Determinarea celui mai mare divizor comun a 2 numere ntregi pozitive.
Descriere: Algoritmul primete ca intrare 2 numere ntregi pozitive i calculeaz cel mai mare
divizor comun al celor 2 numere.
Procedura:
Pasul 1 : Se noteaz cu M cea mai mare valoare i cu N cea mai mic valoare de intrare.
Pasul 2 : Se mparte M la N i se noteaz cu R restul mpririi.
-
6
Pasul 3 : Dac R 0, se atribuie lui M valoarea N i lui N valoare R, apoi se revine la pasul 2:
cel mai mare divizor comun al celor 2 numere este valoarea notat cu N.
Dup descoperirea algoritmului (n cazul nostru al lui Euclid), ntr-un fel, putem spune
c toate informaiile necesare pentru efectuarea [activitii] operaiei respective sunt incluse ntr-
o form codificat n algoritm.
Dezvoltarea algoritmilor este o preocupare major n domeniul efecturii calculelor i
principalele probleme legate de aceast aciune sunt :
descoperirea unui algoritm care s rezolve o problem (gsisirea soluiei pentru o
problem). Pentru anumite domenii (ex. contabilitate), algoritmii se gsesc exprimai n
legi i metodologii (norme) specifice.
reprezentarea algoritmului ntr-o form n care poate fi comunicat unei maini sau altor
oameni. Adic scrierea unui algoritm trebuie transcris din forma conceptual ntr-un set
clar de instruciuni lipsit de ambiguitate. Exist o mulime de variante de scheme de
reprezentare a algoritmilor numite limbaje de programare.
n prezent, n acest domeniu s-au realizat sisteme automate de organizare i planificare
care permit i nespecialitilor s dezvolte, fr ajutor din afar, sistemele de care au nevoie.
Exprimarea curent a acestei activiti este ingineria software.
Scopul acestor prelegeri nu este prezentarea n detaliu a modului n care arhitectura
calculatoarelor este implementat prin intermediul circuitelor electronice (este vorba de un alt
domeniu electronic). Ar fi de dorit ca arhitectura calculatoarelor s reflecte numai cunotinele
legate de procesele algoritmice i s nu fie limitat de tehnic.
Arhitectura calculatoarelor poate fi studiat i n alt context dect acela al stocrii i
regsirii datelor. n acest domeniu, caracteristicile interne ale calculatorului se reflect adesea n
caracteristicile externe. Proiectarea sistemele de calcul este strns legat de interfaa lor cu
lumea exterioar. De exemplu, se pune problema modului n care algoritmul poate fi furnizat
calculatorului i a modului de precizare n care algoritm s fie executat.
n contextul n care calculatorul ndeplinete diferite sarcini, trebuie rezolvate multe
probleme legate de coordonarea activitilor i alocarea resurselor .
-
7
b) Dezvoltarea mainilor algoritmice
Unul din primele dispozitive de calcul utilizate de oameni a fost abacul. Prezena lui a
fost atestat n civilizaiile antice (greac i roman), el fiind folosit i astzi. Bilele poziionate
pe srme n cadrul abacului semnific anumite valori.
Abacul reprezint i stocheaz valori prin poziia bilelor aezate de operatorul uman
(intrrile) care, de asemenea, observ poziiile finale ocupate de bile, ceea ce reprezint
rezultatul (ieirile). Deci abacul este o main de stocare a datelor i devine o main algoritmic
numai mpreun cu omul care-l utilizeaz.
Proiectarea mainilor de calcul s-a bazat ntr-o vreme pe tehnologia roilor dinate.
Printre inventatorii acestui tip de maini de calcul s-a aflat i Blaise Pascal (16231662),
Gottfried Leibniz (16461716) i Charles Babbage (17921871). Mainile lor reprezentau
datele prin poziionarea unor roi dinate, datele de intrare erau furnizate mecanic prin stabilirea
poziiei particulare a acestor roi.
n cazul mainilor lui Pascal i Leibniz, valorile de ieire erau obinute prin observarea
poziiei finale a roilor (similar citirii numerelor pe indicatorul de kilometraj al automobilului).
La maina lui Babbage rezultatele se tipreau pe hrtie, evitnd erorile de transcriere.
n ceea ce privete abilitatea de a urma algoritm putem spune c:
maina lui Pascal efectua numai adunri;
maina lui Leibniz avea algoritmii (operaiile aritmetice) nglobai, dar operatorul
trebuia s-l selecteze pe cel dorit;
maina lui Babbage era astfel proiectat nct secvena de pai trebuia executat s poat
fi comunicat acesteia prin perforarea ntr-un anumit mod a unor cartele de hrtie.
Mai trziu, Herman Hollerith (18601929) a folosit ideea reprezentrii informaiilor sub
forma unor perforaii n cartele de carton, pentru mbuntirea procesului de nregistrare n
cadrul recensmntului efectuat n 1890 n Statele Unite. Lucrrile sale au stat la baza crerii
companiei I B M.
Anul de nastere al informaticii tehnice este 1946 cand a fost creat creat computerul
electronic de integrare numerica aritmetica construit cu tuburi electronice si cantarind sute de
tone. John von Neumann a construit in 1951 calculatorul EDVAC (Electronic Discrete Variable
Automatic Computer), iar in 1949 la Universitatea Cambridge (SUA) a fost realizat EDSAC
-
8
(Electronic Delay Storage Automatic Computer), primul calculator care dispunea de sistem de
operare.
c) Evoluia informaticii
Capacitatea-limit de stocare a datelor, ca i procedurile de programare consumatoare de
timp au reprezentat restricii care au redus complexitatea algoritmilor executai de primele
generaii de calculatoare.
Pe msur ce aceste limite au nceput s fie depite, sistemele de calcul au nceput s fie
folosite pentru sarcini de mai mare anvergur, din ce n ce mai complexe. Eforturile s-au
ndreptat din ce n ce mai mult ctre studiul algoritmilor i al procesului de programare. Aceste
eforturi se pot aduna, fr a exagera, n tiina algoritmilor. Aria de cuprindere a acestei tiine
este foarte larg, incluznd subiecte de matematic, inginerie, psihologie, management,
lingvistic etc.
Ceea ce ne propunem s prezentm n cadrul acestor prelegeri (lecii) sunt :
ideea central a fiecrui domeniu;
direciile curente de cercetare;
tehnicile utilizate n domeniul respectiv.
De exemplu, n domeniul programrii ne vom concentra asupra principiilor de baz ale
instrumentelor de programare i asupra evoluiei lor, i nu asupra dezvoltrii abilitilor de
programare. Pentru a nu pierde din vedere imaginea de ansamblu, vom ncerca s identificm
cteva ntrebri fundamentale pentru informatic :
1. Ce probleme se pot rezolva prin procesele algoritmice?
2. Cum se pot descoperi algoritmii?
3. Cum se pot mbunti tehnicile de reprezentare i comunicare a algoritmilor?
4. Cum pot fi aplicate cunotinele dobndite cu privire la algoritmi (tehnologia n
vederea obinerii unor maini algoritmice mbunttite) ?
5. Cum pot fi analizate i comparate caracteristicile diverilor algoritmi?
Rolul central detinut de algoritm in informatica
-
9
d) Rolul abstractizrii
Pentru sistemele de o complexitate care depete capacitatea noastr de nelegere se
poate privi sistemul respectiv ca un ansamblu de componente ale cror caracteristici interne pot
fi ignorate, ceea ce ne permite s ne concentrm asupra modului n care componentele respective
interacioneaz unele cu altele i asupra modului cum sunt utilizate pentru construirea unor
componente de nivel mai nalt.
Aceast distincie care se face ntre proprietile externe ale unei componente i detaliile
interne care in de construcia componentei respective poart numele de abstractizare. n orice
progres obinut, o mic parte a societii noastre se specializeaz n implementarea lui, ceilali
folosesc rezultatul ca pe un instrument abstract, deci o unealt a crei implementare intern nu
suntem obligai s o nelegem.
e) Implicaii etice, sociale i juridice
Informatica estompeaz multe distincii are serveau n trecut ca reguli pe care oamenii i
ntemeiau deciziile i pune sub semnul ntrebrii o parte din principiile care stau la baza
societii, ca de exemplu :
Care este diferena ntre un comportament inteligent i inteligena propriu-zis?
n ce condiii putem vorbi despre existena vieii?
Care este diferena ntre plante i animale?
Informatica genereaz asemenea ntrebri, punnd n discuie principiile i bazele pe care
este construit cunoaterea noastr.
n context juridic, se pune ntrebarea n ce msur cineva poate deine n proprietate un
produs software i care sunt drepturile i obligaiile care decurg din aceast proprietate. n
domeniul eticii, suntem confruntai cu numeroase opiuni care pun la ndoial principiile uzuale
de comportament. n context politic, apare ntrebarea dac i n ce msur tehnologia
calculatoarelor i aplicaiile acesteia trebuie controlate de stat.
Rezolvarea acestor probleme necesit existena unor cunotine organizate sub forma
metodelor, tehnicilor, normelor pentru fiecare tiin sau tehnologie pus n discuie.
-
10
Pentru a putea s lum decizii logice cu privire la depozitarea deeurilor radioactive,
trebuie s nelegem care sunt efectele radiaiilor, care sunt msurile de protecie care trebuie
luate i s putem evalua durata de risc.
Pentru a acorda sau nu guvernelor sau companiilor dreptul de a construi baze de date
referitoare la ceteni sau clieni, membrii societi trebuie s neleag care sunt posibilitile,
limitele i implicaiile tehnologiei bazelor de date. Ceea ce va fi prezentat n cursul pe care-l
propunem v furnizeaz aceste cunotine elementare n domeniul a ceea ce numim i n f o r m a
t i c .
Cu toate acestea, tiina nu reuete ntotdeauna s rspund clar i hotrt tuturor
problemelor sociale care-i sunt ridicate. Nu ntotdeauna exist un singur rspuns corect; de multe
ori aa-zisele soluii sunt n fapt compromisuri ntre mai multe puncte de vedere.
Este nevoie de capacitatea de a asculta i de a nelege i alte puncte de vedere, de a
purta discuii raionale i de a-i schimba opiniile n funcie de datele obinute n urma
dialogului. Pentru a ncuraja un astfel de comportament, fiecare capitol al cursului se va finaliza
cu un set de probleme de etic, pe care le considerm, mai ales n contextul profesiunii pe care
ai ales-o, la fel de importante ca i aspectele tehnice propuse spre dezbatere.
-
11
UNITATEA DE NVARE 1
1. Stocarea datelor
1.1. Stocarea biilor
Calculatoarele utilizate n prezent reprezint informaiile sub forma iruri de bii. Un bit
(biniary digit = cifr binar) simbolizeaz una din cifrele 0 sau 1.
Stocarea unui bit ntr-un calculator necesit un dispozitiv care s poat s se afle ntr-una
din cele dou stri. De exemplu:
un ntreruptor (pornit/oprit);
un releu (deschis/nchis);
un steag de start (ridicat/cobort).
Una din stri este utilizat pentru reprezentarea simbolului 0, iar cealalt pentru
reprezentarea simbolului 1.
1.1.1. Pori logice i circuite basculante bistabile
Trebuie introduse operaiile AND (= i), OR (= sau) i XOR (= sau exclusiv) care sunt
prezentate mai jos :
Figura 1.1 - Operaiile AND, OR i XOR
-
12
Aceste operaii lucreaz cu valorile adevr (true)/fals (false) i sunt denumite operaii
booleene.
Intrrile operaiei AND sunt reprezentate de adevrul sau falsitatea componentelor
expresiei; ieirea reprezint adevrul sau falsitatea expresiei compuse.
Expresia P AND Q este adevrat numai cnd ambele sale componente sunt adevrate.
Toate variantele operaiei AND se pot vedea n prima linie a figurii 1.1. Similar, operaia OR se
bazeaz pe o expresie compus sub forma P OR Q. Asemenea expresie compus este
adevrat cnd cel puin una dintre componente este adevrat, ceea ce coincide cu
reprezentarea OR din linia a doua a figurii 1.1.
n limbajul curent nu exist o conjuncie care s poat exprima semnificaia operaiei
XOR. XOR produce ca rezultat o ieire cu valoarea 1 atunci cnd una dintre intrrile sale este 1
i cealalt 0 (vezi linia a treia din fig. 1.1.). Operaia NOT este o alt operaie boolean de
AND, OR i XOR, prin faptul c are o singur intrare i o singur ieire. Ieirea reprezint opusul
intrrii; dac intrarea operaiei NOT este adevrat, ieirea este fals, i invers.
1.1.2. Tehnici de stocare
Calculatoarele anilor '60 conineau inele de material magnetic de dimensiuni mici,
denumite miezuri (cores), pe care erau nfurate fire electrice, [mini]bobine. La trecerea
curentului electric prin bobine, miezul poate fi magnetizat ntr-una din cele dou direcii.
Direcia cmpului magnetic poate fi detectat observndu-se efectul asupra unui curent electric
ce trece prin centrul miezului.
Astfel un miez reprezint o posibilitate de memorare a unui bit. Datorit dimensiunilor
lor mari i a necesarului ridicat de putere (electric), aceste sisteme sunt depite astzi.
Calculatoarele nregistreaz datele nc utiliznd tehnologia magnetic, dar ntr-un mod foarte
apropiat de acela n care se fac nregistrrile pe band magnetic. In unele sisteme de calcul se
folosete, de asemenea, i tehnica laserului pentru nregistrarea bitilor.
Diferenele dintre circuitele basculante bistabile electronice i dispozitivele de stocare
magnetice (sau laser) reprezint argumente pro i contra n ceea ce privete aplicaiile lor.
-
13
Circuite basculante bistabile electronice care pot fi acionate electronic sunt mai rapide
dect cele magnetice i, de aceea, sunt utilizate pentru stocarea datelor n circuitele interne ale
calculatorului. ns un circuit basculant bistabil electronic pierde informaia stocat n el atunci
cnd sursa de alimentare este oprit.
n schimb, dispozitivele de stocare magnetice sau cu laser pstreaz datele, ceea ce le
recomand pentru realizarea de sisteme de stocare cu longevitate mare.
1.1.3. Sistemul de notaie hexazecimal
Cnd ne referim la activitile din interiorul unui calculator lucrm cu iruri de bii, care
pot fi uneori foarte lungi. Pentru a simplifica reprezentarea irurilor de bii, se va analiza o
notaie prescurtat, denumit notaia hexazecimal (hexadecimal notation).
Notaia hexazecimal utilizeaz un singur simbol pentru reprezentarea a patru bii.
Sistemul de codificare hexazecimal:
Figura 1.2 - Sistemul de notaie hexazecimal
1.2. Memoria principal
n scopul stocrii datelor, un calculator conine un mare numr de circuite, fiecare dintre
ele fiind capabile s stocheze bii. Acest "rezervor" de bii este cunoscut sub numele de
memorie principal (main memory).
-
14
1.2.1. Organizarea memoriei principale
Celulele de stocare din memorie sunt organizate n uniti, (cuvinte) cu dimensiunea
uzual de 8 bii. Acest ir de 8 bii a impus cuvntul octet i, de asemenea, a impus pentru
cuvntul byte - ir de bii cu aceeai lungime.
Dimensiunea memoriei este adesea msurat n multipli de 1.048.576 celule (1.048.576
= 220, fiind mai natural pentru a fi utilizat dect 1.000.000 care este o putere a lui 10). Pentru a
desemna aceast unitate de msur se folosete termenul mega.
Deci: 1 mega byte (1 MB) 1.048.576 byte.
Alte uniti de msur a dimensiunilor de memorie sunt kilooctetul kilobyte (KB) care
este egal cu 1024 octei (210 octei) i gigaoctetul gigabyte (GB) care este egal cu 1024 MB
(230 octei).
Pentru identificarea celulelor individuale din memoria principal a unui calculator,
fiecare are atribuit un nume unic, denumit adres. Adresele utilizate in tehnica de calcul sunt n
ntregime numerice. Pentru exemplificare putem considera toate celulele de memorie plasate pe
un singur rnd i numerotate n ordine cresctoare pornind de la 0.
Acest sistem permite identificarea unic a unei celule i, de asemenea, o relaie de
ordonare ntre celule permite referiri de tipul "celula precedent" sau "celula urmtoare".
Celulele din memoria principal care stocheaz bii sunt combinate cu circuite necesare pentru a
permite, si altor circuite s stocheze i s recupereze datele din celulele memoriei principale.
Exist astfel si alte celule (circuite) care pot prelua datele din memorie solicitnd
informaii despre coninutul unei anumite adrese (operaie de citire) sau pot nregistra informaii
n memorie solicitnd ca un anumit ir de bii s fie plasat n celula aflat la o anumit adres
(operaie de scriere).
Acest sistem de identificare a celulelor memoriei principale permite apelarea, cercetarea
i modificarea individual a acestora. Astfel, o celul a memoriei principale cu o adres mic
este la fel de accesibil ca si una cu o adres foarte mare, deci datele stocate n memoria
principal a calculatorului pot fi prelucrate n orice ordine. Din aceste motive memoria
principal a unui calculator se mai numete i memorie cu acces aleator (random access
memory RAM).
-
15
Acest acces aleator la mici uniti de date (celula) se deosebete radical de sistemele de
stocare de mas (care manipuleaz iruri lungi de bii sub forma de blocuri).
1.2.2. Organizarea unei celule de memorie
Considerm biii dintr-o celul de memorie ca fiind aranjai pe un rnd. Vom denumi
capetele acestui rnd marginea superioar , iar cellalt capt marginea inferioar.
Considera deasemenea biii aranjai ntr-un rnd orientat de la stnga la dreapta cu
marginea superioar plasat la stnga.
Bitul de la captul din stnga este denumit cel mai semnificativ bit.
Figura 1.3 - Organizarea unei celule de memorie cu dimensiune de un octet
Memoria primara
Memoria (Memory) pstreaz programele i datele. Fr o memorie, din care
procesoarele s poat citi i n care s poat scrie informaii, nu poate exista nici un calculator
numeric cu program memorat.
Bii
Unitatea elementar a memoriei este cifra binar, numit bit. Un bit poate conine un 0
sau un 1. Sistemul de numerotare binar necesit numai dou valori distincte, reprezentnd cea
mai sigur metod pentru codificarea informaiei numerice.
Ordinea octeilor
Octeii dintr-un cuvnt pot fi numerotai de la stnga la dreapta, sau de la dreapta la
stnga. Vom reprezenta n figur o parte a memoriei unui calculator pe 32 bii.
-
16
Figura 1.4 a Bii numerptai de la stnga la dreapta
Figura 1.4 b Bii numerotai de la dreapta la stnga
-
17
S precizm cum vom reprezenta valoarea numeric: 6 este reprezentat de biii 110 n
partea cea mai din dreapta a unui cuvnt i de zerouri pe ceilali 29 de bii din stnga.
Majoritatea aplicaiilor au nevoie de un amestec de numere intregi, iruri de caractere i
alte tipuri de date. S considerm o fi simpl de personal: nume angajat, vrsta i codul
departamentului (Paul Sandu, 21 ani, Departament = 260 = 1 x 256 + 4) i s o reprezentm n
cele dou moduri precizate mai sus.
Figura 1.5 Reprezentarea unei fie de personal
Reprezentrile sunt bune i consistente intern, problema apare la transmiterea fiei, prin
reea de la maina cea mai semnificativ ctre cealalt main. Rezultatul transferului propus
arat astfel:
Figura 1.6 Rezultatul obinut
Maina a inversat n timpul transmisiei:
ordinea caracterelor din cuvnt (ceea ce este corect),
octeii dintr-un ntreg (ceea ce este incorect).
O soluie este de a inversa octeii prin software (dup crearea unei copii), ceea ce va
conduce la :
-
18
Figura 1.7 Soluia de inversare prin software a octeilor
Problema este poziia caracterului "U poziionat prost. Soluii de ndreptare nu exist la
transferul ntre maini diferite ca organizare a memoriei. Apare evident necesitatea unui standard
pentru stabilirea ordinii octeilor n cadrul organizrii memoriei.
Memoria intermediar
ntotdeauna CPU-urile au fost mai rapide dect memoriile. Proiectanii CPU-ului sunt
preocupai de sporirea vitezei acestora, pe cnd proiectanii memoriilor sunt preocupai de
sporirea capacitii, i nu de sporirea vitezei. Datorit acestor abordri, situaia CPU-urilor i a
memoriilor, vis--vis de vitez, continu s se nruteasc n timp. Practic, acest dezechilibru
are urmtoarea metamorfozare: dup ce CPU-ul a lansat o cerere ctre memorie, nu va primi
cuvntul ateptat timp de mai multe cicluri CPU; cu ct memoria este mai lent, cu att CPU-ul
are mai mult de ateptat.
n acest moment, inginerii tiu cum s construiasc memorii la fel de rapide ca i CPU-
urile, dar ar trebui ncorporate n cip-ul CPU, crescndu-i dimensiunile i costul. Cip-ul CPU
este limitat la anumite dimensiuni. n acest sens, se cunosc tehnici de combinare a unei cantiti
mici de memorie rapid cu o cantitate mare de memorie lent, la un pre moderat.
Memoria mic, rapid, se numete memorie intermediar (cache). Ideea de baz a unei
memorii intermediare : cuvintele de memorie cele mai frecvent utilizate sunt pstrate n
memoria intermediar.
-
19
Figura 1.8 Plasarea memoriei intermediare
1.3. Dispozitive de stocare de mas
Limitele tehnologice precum i necesitatea stocrii unor copii de siguran ale datelor
vitale, au fcut ca memoria principal a unui calculator s nu satisfac cerinele impuse de
diversele aplicaii. Din aceste motive, calculatoarele sunt echipate, pe lng memoria principal,
cu sisteme de stocare de mas (mass storage system), denumite i memorie secundar. Stocarea
datelor pe aceste sisteme se face n uniti de mari dimensiuni denumite fiiere (files).
Unul din principalele dezavantaje ale sistemelor de stocare de mas este acela c, n
general, ele necesit o micare suplimentara mecanic, astfel fiind mai lente la stocarea i
recuperarea datelor n comparaie cu memoria principal a calculatorului.
Principalul avantaj al dispozitivelor de stocare de mas este acela c, n multe situaii,
sunt mai ieftine dect memoria principal, iar suportul pe care se nregistreaz datele poate fi
extras din calculator i depozitat ntr-un loc sigur n scopul recuperrii ulterioare a datelor.
Cu privire la dispozitivele care pot fi cuplate sau decuplate de la calculator, se folosesc
termenii on-line i off-line.
Termenul On-line indica c dispozitivul sau informaiile sunt conectate i pot fi folosite
de calculator fr intervenie uman. Termenul Off-line indica c este necesar intervenia
uman nainte ca dispozitivul sau informaiile s poat fi utilizate de calculator; dispozitivul
trebuie pornit sau informaiile trebuie introduse ntr-un anumit mecanism.
-
20
Memoria secundar
Orict de mare ar fi memoria principal. ntotdeauna ea va fi prea mic pentru cerinele utilizatorilor.
Figura 1.9 - Ierarhie de memorii cu cinci niveluri
Mrimea memoriei intermediare are dimensiuni de la 32 KB pn la zeci de MB.
Memoria principal are dimensiuni de la 16 MB pn la zeci de GB.
Discul magnetic este suportul actual pentru pstrarea permanent (80 GB, 100 GB, 120
GB, 200 GB) i st la baza ierarhiei de memorii, iar banda magnetic i discul optic sunt
destinate pstrrii arhivelor. Exist urmtorii parametri importani de caracteristice specifice, pe
msur ce ne deplasm spre baza ierarhiei:
1. Timpul de acces se mrete (crete).
Registrele CPU pot fi accesate n cteva monosecunde;
Memoriile intermediare pot fi accesate ntr-un multiplu apropiat de timpul de acces al
registrelor;
Timpii de acces la memoria principal au valori tipice de cteva zeci de nanosecunde ;
Timpii de acces la discul magnetic 10 msec;
-
21
Timpii de acces la banda magnetic i discul optic sunt de mrimea secundelor (inclusiv
timpul de extragere i inserare n dispozitivul de intrare/ieire).
2. Capacitatea de stocare crete.
Registrele CPU pot stoca 128 octei;
Memoriile intermediare pot stoca civa megaoctei (MB);
Memoriile principale: zeci mii MB;
Discurile magnetice: zeci sute GB;
Benzile magnetice i discurile optice nu sunt tot timpul utilizate, astfel nct capacitatea
lor este limitat de bugetul proprietarului.
3. Numrul de bii primit pe dolar crete. Preurile pe componente se msoar astfel:
Memoria principal, n dolari/MB;
Stocarea pe discul magnetic n centime/pennies/MB;
Stocarea pe banda magnetic, n dolari/GB.
1.3.1. Discuri magnetice
Un disc magnetic este alctuit din unul sau mai multe platane de aluminiu, cu un nveli magnetizabil. Iniial, diametrele acestor discuri erau de 50 cm, 12 cm, dar acum (2005) au n
general 3 cm sau mai puin. Un cap de citire/scriere, care conine o bobin de inducie ce se
deplaseaz foarte aproape de suprafaa platanului, sprijinindu-se pe o pern de aer (cu
excepia discurilor flexibile/dischetelor unde atinge suprafaa). La trecerea unui curent
negativ/pozitiv prin bobina capului, acesta magnetizeaz suprafaa de dedesubtul capului,
aliniind particulele magnetice la dreapta sau la stnga, funcie de polaritatea curentului. Astfel,
se realizeaz scrierea, citirea realizndu-se n modul precizat n paragraful urmtor. La trecerea
capului de citire peste o suprafa magnetizat, un curent pozitiv/negativ este indus n bobina
capului. n continuare este prezentat geometria unei piste specifice discului magnetic.
-
22
Figura 1.10 - O poriune a unei piste a discului (sunt precizate dou sectoare)
Secvena circular de bii scris la rotaia complet a discuie se numete pist (track).
Fiecare pist este mprit n sectoare de lungime fix, de obicei de cte 512 octei de date,
precedai de un preambul care permite capului s se sincronizeze nainte de citire sau scriere.
Dup zona de date urmeaz un cod corector de erori (ECC Error Correcting Code), fie un cod
Hamming, fie un cod care poate corecta erori multiple numit Cod Reed Solomon.
Sectoarele consecutive sunt separate de un spaiu ntre sectoare (Intersector gap).
Capacitatea discului formatat este cu cca. 15% mai mic dect cea a discului neformatat. La
fiecare distan radial poate fi scris o alt pist. Pistele (coroane circulare) sunt cercuri
concentrice fa de axul discului.
Cu tehnologia actual, discurile au ntre 800 i 2000 de piste pe centimetru, lrgimea
pistei fiind ntre 5-10 microni. Discurile actuale ajung de la densiti de 50000 pn la 100000
bii/cm. Astfel de discuri se numesc discuri Wincester. Majoritatea discurilor sunt constituite
din mai multe platane suprapuse pe vertical.
Fiecare platan dispune de propriul bra i cap. Braele sunt sudate ntre ele; la o
deplasare ntr-o nou poziie radial sunt mutate toate odat. Setul de piste dintr-o poziie radial
se numete cilindru.
Factorii care influeneaz performanele discurilor sunt:
-
23
deplasare n poziia radial corect, cutare (seek);
timpii medii de cutare (ntre piste alese aleatoriu) se situeaz n intervalul 5-15 msec.;
latena de rotaie (rotational latency) necesar rotirii platanului astfel nct sectorul dorit s
ajung sub capul de citire; ntrzierea medie: 4 8 msec. Majoritatea discurilor se rotesc la
5400, 7200, 10800 rotaii/minut;
timpul de transfer depinde de densitatea linear i de viteza de rotaie i are valori de 25
100 microsecunde (la data de transfer 5 20 MB/sec., pentru un sector de 512 octei).
Evident, timpul de cutare i latena sunt predominante n timpul de transfer. Fiecrui
disc i este asociat un controlor de date (disk controller), un cip care controleaz dispozitivul.
Printre sarcinile controlerului sunt :
acceptarea comenzilor de la software, de tipul READ, WRITE, FORMAT;
controlul micrii braului;
detecia i corecia erorilor;
conversia datelor citite din memorie;
cnd controlorul descoper un sector defect, l nlocuiete cu unul din sectoarele libere
rezervate n acest scop n cadrul fiecrui cilindru.
Cea mai obinuit form de stocare de mas utilizat n prezent o reprezint stocarea pe
disc. n aceast structur, stocarea datelor se face pe un disc subire care se nvrtete i care este
acoperit cu o pelicul subire de material magnetic.
Deasupra i/sau dedesubtul discului sunt plasate capete de citire/scriere, astfel nct, pe
msur ce discul se rotete, fiecare cap parcurge un cerc denumit pist (track) care se afl pe
suprafaa de sus sau jos a discului. Deoarece fiecare pist conine mai multe informaii dect
vom dori s prelucrm la un moment dat, pistele sunt mprite n arce de cerc denumite
sectoare, unde informaiile sunt nregistrate ca un ir continuu de bii.
Prin repoziionarea capetelor de citire/scriere se obine acces la sectoare situate pe
diferite piste concentrice. Pistele sunt compuse din mai multe sectoare individuale, fiecare dintre
ele putnd fi tratate ca un ir de bii independent. Numrul de piste de pe suprafaa discului,
precum i numrul de sectoare de pe o pist, difer de la un sistem la altul. Dimensiunile
sectoarelor sunt n general fie de 512 octei, fie de 1024 octei.
-
24
Figura 1. 11 - Structura unui sistem de stocare pe disc
Localizarea pistelor i sectoarelor nu reprezint ceva permanent n structura fizic a
discului, ele sunt marcate magnetic printr-un proces denumit formatare (sau iniializare) a
discului. Cele mai multe sisteme de calcul pot reformata discurile atunci cnd formatul acestuia
nu este compatibil cu cel propriu. Reformatarea unui disc distruge toate informaiile stocate
anterior pe el.
Sistemele cu capacitate mic utilizeaz un singur disc, denumit i dischet/disc flexibil
(floppy disk). Sunt disponibile in comer astfel de dischete. Dischetele au diametrul de 31/2 oli,
si sunt introduse ntr-o carcas rigid de plastic. Dei capacitatea dischetelor este limitat la
civa megaoctei (1,44 MB), ele au avantajul c se introduc i se scot uor n unitatea
citire/scriere i sunt uor de pstrat. Dischetele reprezint o soluie bun pentru stocarea off-line
a informaiilor.
Discurile de mare capacitate, care pot stoca mai muli gigaoctei de date, constau dintr-un
numr de cinci pn la zece discuri fixe, montate n paralel pe un ax comun, cu suficient spaiu
ntre ele nct s permit accesul capetelor de citire/scriere. Deoarece aceste discuri sunt rigide,
ele sunt cunoscute sub numele de hard-disc.
n cazul acestor sisteme (hard-disc) capetele de citire/scriere nu ating suprafaa discului,
ceea ce-i permite acestuia viteze mari de rotaie. Distana dintre capetele de citire/scriere i
suprafaa dischetei este foarte mic, astfel nct o particul de praf se poate bloca ntre cap i
-
25
suprafaa discului deteriorndu-le pe amndou. Pentru prevenirea acestui fenomen hard-discul
este nchis ntr-o carcas etan.
Pentru evaluarea performanei discurilor se folosesc mai multe criterii (parametrii):
timpul de cutare (seek time) = timpul necesar deplasrii capetelor de citire/scriere de la
o pist la alta;
timpul de ntrziere (rotation delay/latency time) = jumtate din timpul necesar pentru ca
discul s efectueze o rotaie complet, respectiv timpul mediu n care datele respective
ajung n poziia capului de citire/scriere dup ce acesta a fost adus la pista dorit;
timpul de acces (access time) = suma dintre timpul de cutare i timpul de ntrziere;
rata de transfer (transfer rate) a datelor ctre sau de la disc.
Deoarece capetele de citire/scriere nu ating suprafaa discului, ele pot avea viteze de
rotaie de cca. 50007000 rotaii/minut, n timp ce n cazul discurilor flexibile aceste viteze nu
depesc 300 rotaii/minut. Rata de transfer a discurilor fixe se msoar n megabytes/secund,
fa de cea a dischetelor care se msoar n kilobytes/ secund.
Dac timpul de ntrziere se msoar, n cazul circuitelor electronice n nanosecunde
(miliardimi de secund) i chiar mai mici, timpii de cutare, ntrziere i acces n cazul
discurilor se msoar n milisecunde (miimi de secund).
1.3.2. Discuri compacte
Discul compact (CD) este compatibil cu cel utilizat n domeniul nregistrrilor muzicale,
cu diferena c, pentru a obine rate ridicate de transfer al datelor, cititoarele de CD-uri din
calculatoare, rotesc mult mai rapid discul. Aceste discuri, cu diametrul de cca. 5 oli, sunt
confecionate dintr-un material reflectorizant, acoperit cu o pelicul protectoare transparent.
nregistrarea informaiilor pe CD se face prin creare de striaii n adncimea suprafeei
reflectorizante. Informaiile sunt stocate pe o singur pist care are form de spiral. Una din
cele mai rspndite forme actuale de stocare a datelor pe compact-disc este reprezentat de
dispozitivele ce pot fi numai citite, denumite CD-ROM (Compact disk read only memory).
Capacitatea de stocare a acestor CD-ROM-uri este de 600 MB.
Sunt, de asemenea, dispozitive si sisteme CD care permit si modificarea datelor stocate.
Exist de asemenea sisteme care utilizeaz dispozitive magneto-optice pentru nregistrarea
-
26
informaiilor, topind suprafaa reflexiv de pe CD cu ajutorul unei raze laser i apoi rearanjnd-o
prin intermediul unor cmpuri magnetice nainte ca aceasta s se rceasc.
1.3.3. Benzi magnetice
Dispozitivele de stocare mai vechi utilizeaz banda magnetic. Informaiile se
nregistreaz pe o pelicul magnetic depus pe o band de material plastic, care este stocat pe
un sir de role.
Pentru acces la date, banda magnetic este introdus ntr-o unitate de band care poate
derula banda, citi i scrie informaia sub controlul calculatorului. Exist i uniti de band
magnetic cu cartu care utilizeaz casete. Depinznd de formatul utilizat, pe unele benzi
magnetice pot fi stocate volume de ordinul gigabytes (GB).
1.3.4. nregistrri logice i fizice
Datele n memoria principal a unui calculator pot fi apelate la nivelul celulelor de
memorie de dimensiunea unui octet. Proprietile fizice ale dispozitivelor de stocare de mas
impun ca manipularea datelor stocate s se fac utiliznd uniti cu dimensiuni mai mari de un
octet.
Un bloc de date corespunztor caracteristicilor fizice ale unui dispozitiv de stocare este
denumit nregistare fizic (phisycal record). n afara mpririi datelor n nregistrri fizice
determinate de caracteristicile dispozitivului de stocare, fiierele stocate posed o diviziune
natural, legat de structura aplicaiei din care fac parte.
De exemplu, un fiier care conine informaii referitoare la angajaii unei firme este
alctuit de obicei din blocuri de informaii referitoare la fiecare angajat. Aceste blocuri de date
care apar n mod natural sunt denumite nregistrri logice (logical records).
Dimensiunile nregistrrilor logice se potrivesc cu totul ntmpltor ca lungime (mrime)
cu dimensiunile nregistrrilor fizice impuse (ca mrime) de un dispozitiv de stocare. n
consecin este posibil s existe mai multe nregistrri logice stocate ca o singur nregistrare
fizic sau o nregistrare logic stocat pe mai multe nregistrri fizice. n acest spirit, pentru
-
27
recuperarea datelor de pe sistemele de stocare de mas este necesar o anumit activitate de
decodificare.
1.4. Codificarea utilizat pentru stocarea informaiilor
n continuare vor fi studiate mai n amnunt tehnicile utilizate pentru reprezentarea
informaiilor sub forma unor iruri de bii.
1.4.1. Reprezentarea simbolurilor
Reprezentarea datelor ntr-un calculator se realizeaz prin proiectarea unui cod n care
diferite simboluri (litere alfabetice, semne de punctuaie etc.) au asociate abloane (modele) de
bii unice pentru ca informaia sa poata fi stocata sub forma unor propoziii codificate pe
suportul magnetic. Astfel au fost create i folosite diverse coduri pentru diferite echipamente,
acest lucru avnd ca efect apariia i proliferarea problemelor de comunicaie.
Pentru a remedia aceast situaie, Institutul American pentru Standarde (American
National Standards Institute ANSI) a adoptat codul American Standard Code form
Information Interchange (ASCII).
Acest cod utilizeaz modele cu o lungime de apte bii pentru reprezentarea literelor mari
i mici ale alfabetului englez, semnelor de punctuaie, cifrelor de la 0 la 9, precum i a anumitor
caractere de control (trecere rndul urmtor line feed, revenire la marginea din stnga a
rndului carriage return, tabulator tab).
n prezent codul ASCII este extins la un format de opt bii pe simbol, prin adugarea uni
zero pe poziia celui mai semnificativ bit n faa fiecrui ablon al vechiului cod pe apte bii.
Exist i alte coduri mai puternice capabile s reprezinte documente scrise ntr-o
varietate de limbaje. Ele utilizeaz abloane (modele) pe 16 bii (65.536 abloane diferite) sau
chiar pe 32 bii (peste 17 milioane de abloane). [Unicode, cod dezvoltat de I S O (International
Standard Organisation).]
-
28
1.4.2. Reprezentarea valorilor numerice
Metodele de stocare a informaiilor sunt ineficiente atunci cnd informaiile ce trebuie memorate sunt de natur numeric. Pentru nelegere, s presupunem c vrem s stocm nr. 99
sub forma unor simboluri ASCII; sunt necesari 16 bii, dar observm c acesta este cel mai mare
numr stocabil pe 16 bii.
O abordare mult mai eficient este stocarea valorii reprezentate n baza doi (binar).
n notaia binar (baza doi) poziia fiecrei cifre este asociat cu o anumit pondere,
numai c ponderea asociat fiecrei poziii este de dou ori mai mare dect ponderea poziiei din
dreapa. Mai exact, cifra cea mai din dreapta a unei reprezentri binare are asociat ponderea 1
(20), urmtoarea poziie n stnga cu 2 (21) i aa mai departe.
Figura 1.12 - Sistemul zecimal de numeraie
Figura 1.13 - Sistemul binar de numeraie
Pentru a afla valoarea unei reprezentri n binar, vom nmuli valoarea fiecrei cifre cu
ponderea asociat poziiei sale i vom aduna rezultatele.
-
29
Figura 1.14 - Decodificarea reprezentrii binare 100101
Pentru a afla reprezentarea n binar exist un algoritm clasic.
Pasul 1. Se mparte valoarea la doi i se memoreaz restul.
Pasul 2. Ct timp ctul obinut difer de zero, se continu mprirea noului
ct la doi, memorndu-se restul.
Pasul 3. Cnd s-a obinut un ct egal cu zero, reprezentarea n binar a
valorii iniiale const din resturile mpririlor afiate de la dreapta
la stnga n ordinea n care au fost memorate.
-
30
Figura 1.15 - Reprezentarea n binar a numrului treisprezece
1.4.3. Reprezentarea altor tipuri de date
Aplicaiile utilizate n informatica implica si folosirea de imagini, sunete, secvene video.
Tehnicile pentru reprezentarea acestor categorii de date nu sunt nc global standardizate la nivel
mondial.
Una din metodele utilizate pentru stocarea imaginilor este considerarea imaginii ca o
colecie (suma) de puncte (pixel picture element). n forma cea mai simpl, o imagine alb-
negru poate fi codificat ca un lung ir de bii ce reprezint liniile de pixeli, unde fiecare bit are
valoarea 1 sau 0, funcie de culoarea alb sau negru.
Reprezentrile de acest tip sunt cunoscute sub numele de hri de bii (bit maps), deci
irul de bii nu este altceva dect o hart a imaginii reprezentate. Sistemele "populare" de
hri de bii includ fiiere de tip T I F F (Tag Image Format File) i G I F (Graphic
Interchange Format). Fotografiile sunt prezentate ca hri de bii prin fiiere n format JPEG
(Joint Photographic Experts Group).
n cadrul acestor reprezentri acestor fiier imaginea nu poate fi scalat la o dimensiune
arbitrar. Exist posibilitatea scalrii imaginii prin memorare ca un set de directive care
precizeaz modul de desenare. Acest mod de precizare a modului de desenare furnizeaz o
-
31
descriere compatibil cu orice mrime a unitilor sistemului de coordonate care ar putea fi
specificat atunci cnd se afieaz imaginea.
De asemenea, tot metode de reprezentare a datelor sunt i MPEG (Motion Picture
Experts Group) tehnic pentru date video i audio, i D X F (Drowing Interchange Format)
utilizat la sisteme de proiectare asistat de calculator, unde imaginile trebuie rotite i
redimensionate pe ecranul monitorului.
1.5. Sistemul binar de numeraie
Pentru studierea tehnicilor de stocare a valorilor numerice utilizate la calculatoarele de
astzi, trebuie mai nti cunoscut sistemul de reprezentare binar.
1.5.1. Adunarea n binar
Pentru a aduna dou valori reprezentate n notaia binar, se procedeaz astfel:
Se adun cifrele din coloana cea mai din dreapta, se scrie cifra cea mai puin
semnificativ a acestei sume sub coloan, se transport cea mai semnificativ cifr a sumei (dac
exist) n urmtoarea coloan din stnga i se adun apoi coloana respectiv.
Exemplu : 0 0 1 1 1 0 1 0
+ 0 0 0 1 1 0 1 1
Se adun cifrele cele mai din dreapta 0 i 1 i obinem cifra 1, pe care o scriem sub
coloana respectiv.
0 0 1 1 1 0 1 0
+ 0 0 0 1 1 0 1 1
1
Se adun apoi 1 i 1 din coloana urmtoare, obinnd rezultatul 10. Vom scrie 0 sub
coloan i vom transfera cifra 1 deasupra coloanei urmtoare.
-
32
1
0 0 1 1 1 0 1 0
+ 0 0 0 1 1 0 1 1
1 0 1
Se adun cifrele 1, 0 i 0 din coloana urmtoare, obinnd rezultatul 1, i vom scrie 1 sub
coloan.
Cifrele din coloana urmtoare 1 i 1 dau ca rezultat al adunrii 10; se va scrie cifra 0 sub
coloana respectiv i vom transfera cifra 1 deasupra coloanei urmtoare.
1
0 0 1 1 1 0 1 0
+ 0 0 0 1 1 0 1 1
0 1 0 1
Adunm cifrele 1, 1 i 1 din aceast coloan i obinem 11; se va scrie cifra 1 sub
coloana respectiv i vom transfera cifra 1 deasupra coloanei urmtoare.
1
0 0 1 1 1 0 1 0
+ 0 0 0 1 1 0 1 1
1 0 1 0 1
Se va continua n acelai fel, obinnd n final:
0 0 1 1 1 0 1 0
+ 0 0 0 1 1 0 1 1
0 1 0 1 0 1 0 1
1.5.2. Reprezentarea fraciilor n sistemul binar
Pentru extinderea notaiei binare, pentru a fi adecvat reprezentrii valorilor fracionare,
se va utiliza notaia n virgul fix (radix point). Aceasta nseamn c cifrele de la stnga
virgulei mobile (punctului) reprezint partea ntreag a valorii i sunt interpretate ca n sistemul
-
33
binar, iar cifrele din dreapta punctului reprezint partea fracionar a valorii i sunt interpretate
ntr-o manier similar, poziiile lor avnd asociate ponderi fracionare.
Astfel prima poziie din dreapta punctului are atribuit ponderea 1/2, urmtoarea 1/4,
apoi 1/8 i aa mai departe. Rezult c regula aplicat anterior rmne valabil, fiecare poziie
are o pondere alocat de dou ori mai mare dect cea a poziiei din dreapta sa.
Exemplu :
Figura 1.16 - Decodificarea reprezentrii binare 101 . 101
Pentru a aduna dou reprezentri binare n virgul fix, se vor alinia unul sub altul
punctele de separare ntre partea ntreag i cea fracionar i se va aplica acelai proces de
adunare ca i cel prezentat anterior.
Exemplu :
1 0 0 1 1
+ 1 0 0 1 1
1 1 1 0 0 1
2
-
34
1.6. Stocarea numerelor ntregi
Adesea avem nevoie s memorm att valori pozitive ct i valori negative, deci este
nevoie de un sistem de notare care s reprezinte ambele categorii de numere (pozitive i
negative).
Sistemele de notaie pentru reprezentarea ambelor categorii de numere pot folosi circuite
electronice realizate i utilizate pe scar larg n cadrul echipamentelor de calcul. Vom prezenta
n continuare dou astfel de sisteme de notaie: notaia n exces (excess notation) i notaia n
complement fa de doi (two's complement notation).
1.6.1. Notaia n exces
Valorile din sistemul de reprezentare n exces sunt codificate utiliznd cuvinte binare de
aceeai lungime. Pentru realizarea unui sistem de notaie n exces se stabilete mai nti
lungimea cuvintelor binare utilizate, apoi scriem una sub alta toate combinaiile posibile n
ordinea n care ar aprea dac am numra n binar.
n aceast niruire observm c primul cuvnt binar care are pe poziia biului cel mai
semnificativ valoarea 1 survine aproximativ la jumtatea listei.
se va considera c acest model reprezint valoarea 0.
cuvintele binare care urmeaz reprezint valorile 1, 2, 3,...
cuvintele binare care-l preced sunt utilizate pentru codificarea valorilor negative -1, -
2, -3,...
-
35
Figura 1.17 - Tabel conversie pentru sistemul de notaie n exces cu opt
Figura 1.18 - Sistemul de notaie n exces care utilizeaza cuvinte cu lungimea de trei bii
1.6.2. Notaia n complement fa de doi
Cel mai folosit sistem de reprezentare a numerelor ntregi n informatica este notaia n
complement fa de doi (two's complement notation). Acest sistem utilizeaz un numr fix de
bii pentru reprezentarea valorilor din cadrul sistemului. n figurile 1.13.1 si 1.13.2. sunt
prezentate sistemele n complement fa de doi bazate pe cuvinte de cod cu lungimea de trei i
-
36
patru. Pentru construcia unui astfel de sistem se ncepe cu un ir de bii cu valoarea 0 de
lungime adecvat i apoi se numr n binar pn cnd se ajunge la un ir de bii care ncepe cu
un bit 0, iar toi ceilali bii sunt 1. Cuvintele obinute astfel reprezint valorile 0, 1, 2, 3,...
Utiliznd cuvinte binare de lungime trei bii :
Figura 1.19 - Sisteme de notaie n complement fa de doi (trei bii)
Utiliznd cuvinte binare de lungime patru bii :
Figura 1.20 - Sisteme de notaie n complement fa de doi (patru bii)
-
37
Cuvintele care reprezint valorile negative se obin ncepnd cu un ir de bii cu valoarea
1 i numrul n sens descresctor, pn la atingerea cuvntului care ncepe cu un bi 1 i are toi
ceilali bii 0. Cuvintele astfel obinute reprezint valorile -1, -2, -3,...
Se observ c bitul de semn, n notaia n complement fa de doi, este 1 pentru valorile
negative i 0 pentru valorile pozitive. Complementul unui cuvnt binar este cuvntul obinut prin
schimbarea tuturor biilor de 1 n valoarea 0, respectiv a tuturor biilor 0 n 1; cuvntul 0110 este
complementul lui 1001 i invers.
n sistemul de codificare n complement fa de doi pe 4 bii din figura 1.13.2., cuvintele
care reprezint valorile 2 i -2 se termin amndou n 10, cuvntul corespunztor valorii 1
ncepe cu 00, iar reprezentarea valorii -2 ncepe cu 11. Aceast observaie conduce la realizarea
unui algoritm care s permit obinerea reprezentrii binare pentru valori de semne contrare, dar
care au acelai modul.
Vom copia cuvntul original ncepnd de la dreapta pn dup apariia unui bit cu
valoarea 1, apoi vom face complementul biilor rmai (vom schimba toi biii 1 rmai n 0 i
toi biii 0 n 1) pe msur ce-i copiem.
Figura 1.21 - Codificarea valorii -6 n complement fa de doi utiliznd 4 bii
-
38
Aceste proprieti elementare ale sistemelor n complement fa de doi conduc la
obinerea unui algoritm pentru decodificarea reprezentrilor n complement fa de doi.
Dac modelul (ablonul) ce trebuie decodificat are bitul de semn 0, se va citi direct
valoarea ca i cum cuvntul ar fi o reprezentare binar (ex. 0110 reprezint valoarea binar 110,
adic 6). Dac ablonul care trebuie decodificat are bitul de semn 1, se va nelege c valoarea
reprezentat este negativ i trebuie gsit modulul acestei valori. Modulul cutat se va
determina copiind cuvntul original de la dreapta la stnga, pn la primul bit egal cu 1 (inclusiv
acesta), apoi vom complementa biii rmai i i vom scrie n continuare tot de la dreapta la
stnga (lng biii deja copiai), iar n final vom decodifica cuvntul obinut ca i cnd ar fi o
reprezentare binar normal (ex. decodificm 1010; bitul de semn este 1, deci valoarea
numrului este negativ; convertim cuvntul i obinem 0110, ceea ce corespunde valorii 6, deci
ablonul original reprezint valoarea -6).
1.6.3. Adunarea numerelor reprezentate n complement fa de doi
Pentru adunarea valorilor reprezentate n complement fa de doi se aplic acelai
algoritm ca i pentru adunarea n binar, cu excepia faptului c toate cuvintele binare, inclusiv
rezultatul, au aceai lungime. Altfel spus, la adunarea n complement fa de doi, orice bit
suplimentar generat la stnga rspunsului de ctre un transport final va fi eliminat.
De exemplu: 0 1 0 1 0 1 1 1
0 0 1 0 1 0 1 1
0 1 1 1 0 0 1 0
Acceptnd aceast convenie, s considerm urmtoarele trei probleme de adunare:
3 0 0 1 1 (-3) 1 1 0 1
+2 +0 0 1 0 + (-2) + 1 1 1 0
0 1 0 1 5 1 0 1 1 -5
-
39
7 0 1 1 1
+(-5) +1 0 1 1
0 0 1 0 2
Figura 1.22 - Probleme de adunare utiliznd notaia n complement fa de 2
n fiecare caz n parte, vom codifica valorile utiliznd notaia n complement fa de doi
(pe patru bii), vom efectua adunarea procednd aa cum s-a descris anterior i vom decodifica
rezultatul napoi la notaia zecimal.
Se observ c, prin trecerea la notaia n complement fa de doi, putem calcula rspunsul
corect aplicnd n toate cazurile acelai algoritm de adunare. Dac am folosi tehnicile uzuale, a
treia problem ar fi de fapt un proces complet diferit de primele dou; este vorba de operaia de
scdere. Deci, n calculatorul care utilizeaz notaia n complement fa de doi se realizeaz
numai adunare i negarea biilor.
n consecint, dac n calculator se dorete scderea lui 5 (0101) din 7 (0111), mai nti
va fi schimbat n -5 (1011) i apoi se va efectua adunarea 0111 + 1011 = 0010, ceea ce
reprezint valoarea 2.
n ceea ce privete nmulirea, ea este o adunare repetat, iar mprirea o scdere
repetat (ex. 6:2 reprezint de fapt de cte ori poate fi sczut 2 din 6 fr s se obin un rezultat
negativ).
Astfel putem efectua toate cele patru operaii aritmetice standard (adunarea, scderea,
nmulirea i mprirea) utiliznd un circuit pentru adunare combinat cu un circuit pentru
negarea unei valori.
1.6.4. Problema depirii superioare
n oricare din sistemele de numeraie pe care le-am prezentat exist o limit privind
mrimea pe care pot s o reprezinte valoric. La utilizarea notaiei n complement fa de doi cu
cuvinte de patru bii, valoarea 9 nu are asociat un model (ablon), deci nu putem efectua corect
adunarea 5+4.
-
40
O problem similar apare la utilizarea de cuvinte de cinci bii;de ex. s ncercm s
reprezentm valoarea 17, apar erori. Aceste erori se numesc depiri superioare (overflow).
Depirea superioar, la utilizarea notaiei n complement fa de doi, poate apare la adunarea a
dou valori negative sau pozitive.
Depirea poate fi detectat prin verificarea bitului de semn al rspunsului. Altfel spus,
dac rezultatul adunrii a dou valori pozitive/ negative apare ca fiind negativ/pozitiv, este
semnalata depasirea superioara.
Deoarece calculatorul manipuleaz cuvinte mult mai lungi dect cele precizate mai sus (3
bii/4 bii), valorile mari pot fi prelucrate fr s apar o valoare de depire (de exemplu, pentru
calculatoarele care utilizeaz cuvinte de 32 de bii pentru stocare, n notaia n complement fa
de doi, este posibil lucrul cu valori de pn la 2.147.483.647, fr apariia depirii superioare).
Dac sunt necesare valori i mai mari, se folosete metoda denumit dubla precizie
(double precision). Aceast metod permite ca lungimea cuvintelor utilizate s fie mrit fa de
cea utilizat de obicei de ctre calculator. Exist i alte soluii, cum ar fi schimbarea unitii de
msur cu pstrarea preciziei impuse.
1.7. Stocarea numerelor fracionare
n acest caz trebuie memorat i poziia virgulei zecimale nu numai modelele
(abloanele) de 0 i 1. Metoda uzual pentru a face acest lucru se numete notaia n virgul
mobil (floating point notation).
1.7.1. Notaia n virgul mobil
Vom explica notaia n virgul mobil printr-un exemplu care utilizeaz numai un octet
pentru efectuarea stocrii.
Cel mai semnificativ bit din cadrul octetului este bitul de semn. Dac bitul de semn este
0, valoarea stocat este pozitiv; iar dac este 1, valoarea stocat este negativ. mprim cei
apte bii rmai n dou grupuri/cmpuri: cmpul exponentului (exponent field) i cmpul
mantisei (mantissa fied). Considerm trei bii, care urmeaz dup bitul de semn, ca fiind cmpul
exponentului, iar cei patru bii rmai ca fiind cmpul mantisei :
-
41
Figura 1.23 - Elemente ale notaiei n virgul mobil
Se poate explica semnificaia acestor cmpuri considernd urmtorul exemplu. Octetul
conine irul de bii 01101011. Deci, bitul de semn = 0, exponentul = 110, mantisa = 1011.
Pentru a decodifica octetul, extragem mai nti mantisa i plasm n stnga ei o virgul
zecimal, obinnd 1011.
Extragem apoi coninutul cmpului exponentului (110) i-l interpretm ca pe un ntreg
stocat utiliznd metode n exces pe trei bii, n cazul nostru reprezint valoarea pozitiv 2. Acest
fapt ne precizeaz c trebuie s mutm virgula la dreapta cu doi bii (un exponent negativ
nseamn c virgula trebuie deplasat la stnga). n cazul nostru obinem : 10 11 ceea ce
nseamn 23/4.
Observm c bitul de semn din exemplul considerat este 0, deci valoarea reprezentat
este pozitiv. Vom trage concluzia c 01101011 reprezint valoarea 23/4.
Pentru a stoca o valoare utiliznd notaia n virgul mobil, vom proceda n sens invers
dect n prezentarea de mai sus. De exemplu, pentru a codifica valoarea 11/8, o vom exprima
mai nti in notaia binar 1.001 vom copia apoi cuvntul binar n cmpul rezervat mantisei de la
stnga la dreapta, ncepnd cu primul bit diferit de zero din reprezentarea binar.
Octetul arat astfel :
1 0 0 1
-
42
Acum trebuie completat cmpul exponentului. Ne imaginm coninutul cmpului
mantisei avnd o virgul zecimal la stnga i vom determina numrul de bii i direcia n care
trebuie s fie deplasat virgula pentru a se obine numrul binar iniial.
n exemplul nostru, observm c virgula din .1001 trebuie deplasat cu un bit la dreapta
pentru a obine 1.001. Din aceast cauz, exponentul trebuie s aib valoarea pozitiv 1; vom
plasa combinaia 101 (care este reprezentarea valorii pozitive 1, n exces cu patru) n cmpul
exponentului:
1 0 1 1 0 0 1
exponent
n final vom nscrie 0 n bitul de semn, deoarece valoarea stocat este pozitiv; la sfrit
octetul arat astfel :
0 1 0 1 1 0 0 1
semn
1.7.2. Erori de rotunjire
S studiem ncercarea stocrii valorii 25/8 utiliznd sistemul n virgul mobil pe un octet
(prezentat anterior). Scriem mai nti valoarea 25/8 n binar : 10.101. La copierea acestui
rezultat n cmpul mantisei, vom descoperi c nu avem suficient spaiu i, ca urmare, ultimul 1
(cel care orespunde ultimului 1/8) se va pierde.
Figura 1.24 - Codificarea valorii 25/8
-
43
Dac ignorm aceast problem i continum completarea cmpului exponentului i a
bitului de semn, obinem cuvntul:
0 1 1 0 1 0 1 0
bit de exponentul 2 pentru notaia n exces
semn pentru exprimare pe 4 bii
Acest cuvnt ns reprezint valoarea 21/2.
Ceea ce s-a ntmplat poart numele de eroare de rotunjire {round - off error), cauzat
n acest caz de lungimea prea mic a cmpului de primire a mantisei.
Soluia pentru rezolvarea acestei probleme este creterea dimensiunii cmpului mantisei,
ceea ce se ntmpl n cazul calculatoarelor reale.De obicei, pentru stocarea valorilor n virgul
mobil se utilizeaz cel puin 32 bii; dac nici n acest mod nu se rezolv problema, se poate
aplica conceptul de dubl precizie.
1.8. Erori de comunicaie
La transferarea informaiilor ntre diverse componente ale calculatorului sau n cazul
stocrii datelor, exist posibilitatea ca irul de bii primit napoi s nu fie identic cu cel original.
Pentru rezolvarea unor asemenea probleme, au fost dezvoltate diferite tehnici de
codificare care permit detectarea i corectarea erorilor. n prezent, datorit faptului c aceste
tehnici de codificare sunt implementate pe scar larg n componentele inteme ale sistemelor de
calcul, ele sunt invizibile pentru cei care utilizeaz calculatoarele, dar pe ele se bazeaz
fiabilitatea echipamentelor actuale.
1.8.1. Bii de paritate
O metod simpl pentru detectarea erorilor se bazeaz pe urmatoarea regula : dac fiecare
cuvnt binar manipulat are un numr impar de bii de 1, apariia unui cuvnt cu un numr par de
-
44
bii de 1 semnaleaz o eroare. Pentru a folosi aceast regul, avem nevoie de un sistem n care
fiecare cuvnt binar s conin un numr impar de bii 1, ceea ce se obine uor prin adugarea
unui bit suplimentar, bitul de paritate (parity bit).
Bitul de paritate se plaseaz pe poziia bitului cel mai semnificativ, deci codul de opt bii
devine un cod de nou bii.
Bitul de paritate va lua valoare 0 sau 1, astfel nct cuvntul rezultat s aibe un numr
impar de 1.
Figura 1.25 - Modificarea codurilor ASCII pentru caracterele A si I, astfel
nct s aibe paritatea impar
Dup aceast modificare ( precizat in figura de mai sus pentru caracterele A i I ),
ambele cuvinte vor avea nou bii i conin un numr impar de bii 1. Dup aceast modificare a
sistemului de codificare, un cuvnt cu un numr par de bii 1 semnaleaz faptul c s-a produs o
eroare i deci cuvntul respectiv este incorect. Sistemul de paritate descris poart numele de
paritate impar (odd parity), deoarece fiecare cuvnt conine un numr impar de bii 1.
-
45
O alt tehnic utilizeaz paritatea par (even parity). n aceast tehnic, fiecare cuvnt
trebuie s conin un numr par de bii 1, iar prezena unei erori este semnalat de apariia unui
cuvnt cu un numr impar de bii 1. irurile lungi de bii sunt nsoite adesea de un grup de bii
de paritate dispui ntr-un octet de control (checkbyte).
Printre variantele principiului de verificare cu octet de control, se numr schemele de
detecie a erorilor numite semne de control (checksums) i control de coduri ciclice (cyclic
redundancy check CRC).
1.8.2. Coduri corectoare de erori
Bitul de paritate permite detectarea unei erori singulare, dar nu furnizeaz informaia
necesar pentru corectarea erorii. Pot fi, ns, concepute coduri corectoare de erori (error
corecting codes) care nu numai c detecteaz erorile, dar le i corecteaz.
Intuitiv, se poate crede c nu poate fi corectat informaia dintr-un mesaj, dect dac se
cunoate informaia coninut de mesaj.Contrarul acestei afirmatii se va demonstra in
continuare. Pentru a nelege modul de funcionare a codului corector de erori, vom defini
distana Hemming dintre dou numere binare. Distana Hemming ntre dou numere binare este
numrul de bii prin care difer cele dou cuvinte.
Figura 1.26 Exemplu de cod corector de erori
-
46
Exemplu: n figura de mai sus, distana Hemming dintre simbolurile A i B n codul
prezentat este patru, dintre B i C este trei.
Caracteristica important a codului prezentat este c oricare dou cuvinte de cod sunt
separate de o distan Hemming de cel puin trei biti. Altfel spus, trebuie s modificm cel puin
patru bii n cod pentru a apare un alt cuvnt din lista propus de coduri.
S presupunem c recepionm 010100. Dac comparm acest cuvnt binar cu lista de
coduri propus n fig. 1.26, obinem distanele din figura 1.27. Vom putea trage concluzia c a
fost transmis caracterul D, acesta fiind cel mai apropiat de codul recepionat.
Cu ct distana Hemming dintre dou coduri utilizate este mai mare, cu att de pot
detecta i corecta mai multe erori.
Figura 1.27 - Decodificarea cuvntului 010100 utiliznd codul din figura 1.26
-
47
TEST AUTOEVALUARE 1 (Stocarea datelor)
1. Care din urmatoarele reprezentari zecimale este egala cu valoarea binara : 111.01001
1. 7 5/32
2. 7 9/32
3. 7 7/16
2. Care din urmatoarele reprezentari zecimale este egala cu valoarea octala : 71.15
1. 58 11/64
2. 57 13/64
3. 59 17/64
3. Care dintre urmatoarele afirmatii despre memoria interna (RAM) este falsa :
1. poate fi doar citita
2. de regula are componente electromecanice in miscare
3. informatia dispare la scoaterea de sub tensiune
4. Care din urmatoarele reprezentari zecimale este egala cu valoarea hexazecimala
41A.0CA:
1. 1050 202/4096
2. 1060 198/4096
3. 1030 214/4096
5. Convertiti urmatoarea fractie ordinara : - 1 (10) in informatii stocate intr-un octet,
folosind notatia in virgula mobila.
Se va utiliza notatia in exces pe trei biti.
111.3
110.2
101.1
100.0
011-1
010-2
001... -3
000.. -4
-
48
6. Convertiti in baza opt urmatoarele siruri de biti :
1. 1011011. 1011 011
2. 11101011. 1010101010101
7. Care sunt sirurile de biti reprezentate de urmatoarele numere hexazecimale :
1. BAF61C. 6A11
2. 11010.1101111
8. Convertii fiecare dintre urmtoarele reprezentri octale n forma zecinala (baza 10)
echivalent :
1. 6714. 1062
2. 314281. 217
9. Convertii fiecare dintre urmtoarele reprezentri binare n forma intreg si fractie
ordinara echivalent :
1. 1 0 0 1 . 0 1 0 1
2. 0 . 1 0 1 1 0 1
10. Exista urmatoarele informatii stocate intr-un octet, folosind notatia in virgula mobila :
1. 1 010 1 0 0 1
Calculati valoarea in baza 10 a sirului de biti de mai sus.
Pentru rezolvare utilizati urmatoarea notatie in exces pe trei biti
111.3
110.2
101.1
100.0
011-1
010-2
001... -3
000.. -4
-
49
11. Care din urmatoarele reprezentari zecimale este egala cu valoarea binara : 1010.0111
1. 10 3/4
2. 10 7/16
3. 10 11/64
12. Care dintre urmatoarele afirmatii despre memoria interna (RAM) este adevarata :
1. poate fi doar citita
2. de regula are componente electromecanice in miscare
3. informatia dispare la scoaterea de sub tensiune
13. Convertiti urmatoarea fractie ordinara : - 2 (10) in informatii stocate in mantisa unui
octet, folosind notatia in virgula mobila. Se va utiliza notatia in exces pe trei biti.
111.3
110.2
101.1
100.0
011-1
010-2
001... -3
000.. -4
14. Utilizati notatia hexazecimala pentru a reprezenta urmatoarele siruri de biti :
1. 1101101.110 011
2. 11101001011.1010101010101
15. Convertiti in baza opt urmatoarele siruri de biti :
1. 1101101.110 011
2. 1110100.10111010101
16. Exista urmatoarele informatii stocate intr-un octet, folosind notatia in virgula mobila :
1. 1 1 1 1 1 0 0 1
Convertiti sirurul de biti de mai sus in valoarea lor in baza 10
Pentru rezolvare utilizati urmatoarea notatie in exces pe trei biti
111.3
110.2
-
50
101.1
100.0
011-1
010-2
001... -3
000.. -4
17. Utilizati notatia hexazecimala pentru a reprezenta urmatoarele siruri de biti :
1. 10110110.1110 011
2. 1110100101.11010101010101
18. Se considera urmatoarea reprezentare a numerelor binare in complement fata de doi:
0111.7
0110.6
0101.5
0100.4
0011.3
0010.2
0001.1
0000.0
1111-1
1110-2
1101-3
1100-4
1011-5
1010................................-6
1001-7
1000-8
Efectuati adunarile 7+4 ; si scaderea 6 - 2.
Detaliati modul de rezolvare a fiecarei operatii solicitate.
-
51
19. Care din sirurile de mai jos ar putea reprezenta un numar scris in baza hexa (16) :
1. 10010
2. 101011
3. 10111
20. Care dintre urmatoarele afirmatii despre memoria externa (CD-W, HDD, DVD-W,
discheta) este adevarata
1. poate fi doar citita
2. informatia dispare la scoaterea de sub tensiune
3. de regula are componente electromecanice in miscare
22. Care dintre urmatoarele afirmatii despre memoria externa (CD-W, HDD, DVD-W,
discheta) este falsa :
1. poate fi doar citita
2. informatia dispare la scoaterea de sub tensiune
3. de regula are componente electromecanice in miscare
-
52
UNITATEA DE NVARE 2
2. Manipularea datelor
2.1. Unitatea central de prelucrare
Circuitele care realizeaz diferite operaii asupra datelor nu sunt conectate direct la
celulele memoriei principale. Aceste circuite sunt grupate n unitatea central de prelucrare
(central processing unit CPU). Unitatea central de prelucrare (CPU) se compune din:
unitatea aritmetico-logic (aritmetic/logic unit) conine circuitele care realizeaz
manipularea datelor ;
unitatea de comand (control unit) conine circuitele utilizate pentru coordonarea
activitii calculatorului.
registri (registrele)
n figura de mai jos este prezentat organizarea unui calculator [simplu] construit n jurul
unei magistrale. Unitatea Central de Prelucrare (UCP/CPU Control Processing Unit),
creierul calculatorului, are rolul de a executa programele pstrate n memoria principal prin
extragerea instruciunilor componente ale unui program, examinarea lor i execuia lor
secvenial (una dup alta).
Componentele sunt conectate printr-o magistral (bus), format dintr-o mulime de ci
paralele prin care sunt transmise adrese, date i semnale de control. Magistralele se pot afla att
n exteriorul UCP, conectnd-o cu memoria i dispozitivele de intrare/ieire, ct i n interiorul
UCP. Aceasta este alctuit din mai multe componente :
Unitatea de control care rspunde de extragerea instruciunilor din memoria
principal i de determinarea tipului [lor] fiecruia.
Unitatea aritmetic i logic execut operaii necesare pentru ndeplinirea
instruciunilor (SI logic, SAU logic, ).
-
53
Figura 2.1 - Organizarea unui calculator simplu
UCP conine de asemenea i o memorie special foarte rapid, folosit pentru
depozitarea rezultatelor temporare, precum i a unor informaii de control. Aceast memorie este
format dintr-un numr de registre, fiecare cu o anumit dimensiune i o anumit funciune.
Principalele registre sunt:
contorul de program (PC Program Computer) el indic urmtoarea instruciune
care va fi extras pentru execuie;
registrul de instruciuni (Instruction Register IR), n care se pstreaz
instruciunea n execuie.
Interfaa CPU / Memorie
Transferarea cuvintelor binare ntre unitatea central a unui calculator i memoria
principal se realizeaz prin conectarea acestora printr-un grup de fire denumite magistral
Prin intermediul magistralei, unitatea central poate s extrag (s citeasc)/s plaseze (s scrie)
date din/n memoria principal, furniznd adresa celulei de memorie dorite, mpreun cu un
semnal de citire. Analiznd acest mecanism, observm c presupune att implicarea unitii de
comand ct i a unitii aritmetico-logice.
-
54
Figura 2.2 - Arhitectura unitate central de prelucrare/memorie principal
Organizarea CPU-ului Von Neumann (tipic)
Aceast parte se numete calea de date (data path) i include pn la 32 de registre,
Unitatea aritmetic i logic (UAL) i mai multe magistrale de legtur. Registrele trimit datele
n cele dou registre de intrare ale UAL, notate cu A i B, care le pstreaz n timp ce UAL face
calculele.
Figura 2.3 - Calea de date a unei maini Von Neumann (adunarea)
-
55
Dup ce UAL execut cu datele de intrare, adunri, scderi i alte operaii simple,
transmite rezultatul n registrul de ieire. Majoritatea instruciunilor executate de UAP sunt de
tip: registru-memorie, registru-registru. Instruciunile registru-memorie permit cuvintelor din
memorie s fie ncrcate n registre, de unde sunt folosite ca date de intrare pentru UAL n
instruciunile urmtoare.
Instruciunile registru-registru extrag doi operanzi din registre, i aduc n registrele de
intrare UAL, execut o operaie oarecare asupra lor (adunare, SI logic, ) i depun rezultatul
napoi ntr-unul din registre. Acest ultim proces se numete ciclul cii de date (Data path cycle)
i reprezint inima celor mai multe UCP-uri. Cu ct acest ciclu este mai rapid, cu att maina
merge mai repede.
2.2. Execuia instruciunilor
UCP execut fiecare instruciune printr-o serie de pai mici, dup cum urmeaz :
a. transformarea instruciunii urmtoare din memorie n registrul de instruciuni;
b. schimbarea contorului de program, pentru a indica instruciunea urmtoare;
c. determinarea tipului instruciunii proaspt extrase;
d. dac instruciunea are nevoie de un cuvnt din [spaiul] de memorie, determinarea
locului unde se gsete acesta;
e. extragerea cuvntului ntr-unul din registrele UCP, dac este cazul;
f. executarea instruciunii;
g. reluarea pasului a pentru a ncepe execuia instruciunii urmtoare.
Aceast secven [de pai] se mai numete ciclul extrageredecodificareexecuie
(fetchdecodeexecute). n fig. 2.4 este prezentat n detaliu procesul adunrii a dou valori
stocate n memorie.
Instruciuni n cod main
Instruciunile prezentate n fig. 2.4 reprezint instruciuni executabile de ctre unitatea
central de prelucrare i poart denumirea instruciunii n cod main (machine instructions).
Cnd ne referim la instruciunile cunoscute de un calculator, observm c ele pot fi
clasificate n trei categorii (grupe): instruciuni de transfer de date, instruciuni aritmetico-
logice, instruciuni de control.
-
56
Figura 2.4 - Adunarea unor valori stocate n memorie
Instruciuni de transfer de date
Instruciuni care realizeaz deplasarea datelor dintr-un loc n altul, dar fr dispariia lor
din poziia iniial. Paii 1, 2 i 4 din fig. 2.4 intr n aceast categorie. Termenii transfer sau
mutare sunt mai puin adecvai; mai exaci ar fi copiere sau clonare.
Cererea de ncrcare a unui registru de uz general cu coninutul unei celule de memorie
este desemnat de o instruciune LOAD, iar transferul coninutului unui registru ntr-o celul de
memorie se face prin intermediul unei instruciuni STORE.
n fig. 2.4 paii 1 i 2 reprezint instruciuni LOAD, iar pasul 4 este o instruciune STORE.
O parte important a instruciunilor de transfer se refer la operaii (comenzi) ntre
dispozitive n afara CPU i memoria intern. Aceste instruciuni se ocup de operaiile de
intrare/ieire (input/ output - I/O) din calculator i uneori plasate ntr-un grup distinct de
instruciuni.
Instruciuni aritmetice i logice
Instruciunile care indic uniti de comand s solicite unitii aritmetico-logice
efectuarea unei anumite operaii. Pasul 3 din fig. 2.4 face parte din aceast categorie de
instruciuni.
Operaiile logice posibile de efectuat sunt: AND, OR i XOR. Operaii care realizeaz
deplasarea la dreapta sau la stnga a coninutului registrilor: SHIFT, ROTATE. Vor fi dataliate
in subcapitolul 2.7.
-
57
Inst