UTILIZAREA CALCULATOARELOR

CAPITOLUL 1

Introducere
1.1. Ce este calculatorul?
Calculatorul este un sistem electronic de calcul format dintr-un ansamblu de echipamente (hardware) care, împreună cu un anumit număr de programe (software) realizează prelucrarea datelor furnizate de utilizatori. La calculator sunt conectate echipamente periferice ce sunt folosite pentru culegera, stocarea, prelucrarea, redarea şi transmiterea rezultatelor. Un program este o secvenţă de instrucţiuni care descrie paşii urmaţi pentru executarea unei anumite sarcini. Programele sunt de două tipuri programe de bază şi programe de aplicaţii. Programele de bază formează sistemul de operare (SO) şi sunt memorate pe suporturi externe. La pornirea calculatorului sunt încărcate în memoria internă. SO asigură transmiterea comenzilor către echipamente. Programele de aplicaţii sunt specifice problemelor ce trebuie rezolvate respectiv datelor ce sunt prelucrate.

1.2. Scurt istoric al calculatoarelor. Calculatorul IBM-PC
Calculatoarele au apărut în cadrul mai multor generaţii. Generaţia 0 – calculatoarele mecanice (1642-1940) Prima „maşină de calcul” a fost în întregime mecanică, cu roţi dinţate, fiind realizată de cercetătorul francez Blaise Pascal în anul 1642. Maşina putea să facă adunări şi scăderi. A fost realizată, în principal, pentru a uşura munca de colectare a taxelor. Nu au fost vandute prea multe astfel de calculatoare. Prima generaţie – relee şi tuburile electronice (1940-1955) Calculatorul Atanasoff-Berry sau ABC (Atanasoff-Berry Computer), dezvoltat în SUA între anii 1937 şi 1942 este considerat de unii a fi primul calculator numeric electronic. Implementa calculul binar cu ajutorul tuburilor electronice dar a fost limitat la rezolvarea sistemelor de ecuaţii liniare. Calculatorul Z3 proiectat de Konrad Zuse în 1941 (Germania). A fost primul calculator, electromecanic (cu relee), de uz general. A utilizat matematica binară şi putea fi programat complet cu ajutorul unor benzi perforate. A fost distrus în 1944 de armatele aliate în timpul bombardamentelor efectuate asupra Berlinului. Calculatorul Colossus a fost proiectat de Tommy Flowers în 1944 (Marea Britanie). A fost un calculator numeric, electronic, programat prin 1

UTILIZAREA CALCULATOARELOR

reconfigurarea legaturilor. În al doilea razboi mondial a fost utilizat pentru a ajuta la decriptarea mesajelor. La sfârşitul războiului a fost distrus din ordinul lui Winston Churchill. Calculatorul ENIAC (Electronic Numerical Integrator and Computer) a fost proiectat de John William Mauchly în 1946 (SUA). Folosea tuburi electronice (~17.000), diode (7.200), relee (1.500), rezistoare (70.000), condensatoare (10.000). Cântărea 27 de tone şi consuma 150 kWh. Pentru reprogramarea sa trebuiau refăcute legăturile (recablat). Folosea aritmetica zecimală. A fost utilizat în principal pentru calculul tabelelor utilizate de artilerie. De asemenea a fost utilizat pentru proiectarea bombei cu hidrogen. În varianta iniţială, calculatorul ENIAC nu putea memora un program. În 1948, la propunerea lui John von Neumann a fost reproiectată utilizarea resurselor calculatorului. Iniţial pentru calcule se utilizau 19 registre acumulator. Dupa reconfigurarea calculatorului pentru calcule a fost utilizat un singur acumulator, celelalte fiind utilizate în alte scopuri (contor de program respectiv memorie de date). Acest lucru a dus la reducerea vitezei de lucru dar şi la micşorarea timpului necesar pentru programarea calculatorului de la zile la ore. Ideea enunţată de von Neumann reprezintă şi astăzi baza pentru cele mai multe calculatoare numerice. A doua generaţie – tranzistoarele (1955-1965) Tranzistorul a fost inventat în 1948. În următorii 10 ani, tranzistoarele au revoluţionat calculatoarele, şi la sfârşitul anilor 1950, tuburile au devenit total depăşite. Una dintre firmele care se afirma din ce mai mult în construcţia calculatoarelor a fost IBM (International Business Machines), în SUA. A treia generaţie – circuitele integrate (1965-1980) Invenţia circuitului integrat în 1958 a permis ca zeci de tranzistoare să fie puse pe un singur cip (chip=aşchie). Au rezultat calculatoare mai mici, mai rapide şi mai ieftine decât predecesoarele lor cu tranzistoare. A patra generaţie – integrarea pe scară foarte largă (1980-?) Au fost realizate circuite integrate cu mii, zeci de mii sau sute de mii de tranzistoare pe un singur cip, numiteVLSI (Very Large Scale Integration). Mai nou se produc circuite ULSI (Ultra Large Scale Integration) care conţin de la sute de mii la milioane de tranzistoare pe un singur cip. În august 1981 firma IBM realizează calculatorul numit IBM-PC, pe baza procesorului Intel 8088, un procesor care efectua operaţiile interne pe 16 biţi, dar în exterior furniza datele pe 8 biţi, având o frecvenţă de tact de 5 MHz. Calculatorul a fost echipat cu un sistem de operare MS-DOS, produs de Microsoft Corporation, nu avea hard disc, iar ca suport de memorare extern avea o unitate de casetă audio. Abia următoarea variantă, IBM-XT, apărută în 2

UTILIZAREA CALCULATOARELOR

1983 avea un hard disc de 10 MB, şi o unitate de dischetă (floppy disk). Firma a făcut public proiectul noului calculator, pentru a da posibilitatea şi altor firme să realizeze plăci de extensie care să fie introduse în PC, sau alte componente, pentru a permite astfel creşterea vânzărilor sale. Efectul a fost că o mulţime de alte firme au început să producă PC-uri, IBM nemaifiind principalul producător. Actualmente, există şi alţi producători importanţi ca: Hewlett Packard, Dell, Compaq. Alte calculatoare personale care se produceau în acel moment (de ex. Apple) au pierdut competiţia cu nou creatul IBM-PC. Ce este de fapt un PC? Orice calculator mic, realizat în conformitate cu proiectul iniţial IBM, pe care pot rula aceleaşi programe ca şi pe celelalte PC-uri. Sau, un calculator de uz general care conţine o unitate centrală (procesor) compatibilă cu familia Intel x86 şi pe care rulează una dintre versiunile Microsoft Windows. Trebuie precizat că (totuşi) mai există şi alte calculatoare. De exemplu, calculatoarele de tip SUN (Stanford University Network), create pentru lucru în reţea (sunt mai puternice, se numesc „staţii de lucru”), care au la bază un procesor diferit, numit SPARC (Scalable Processor ARChitecture). Rulează sub sistemul de operare Unix. De asemenea, există calculatoarele MacIntosh, realizate de Apple Computer, care conţin procesoare de tip PowerPC, şi sunt echipate cu un sistem de operare numit „System”. În lumea calculatoarelor se foloseşte termenul de platformă pentru a clasifica calculatoarele din punctul de vedere al sistemelor de operare. Astfel, există platformele: PC (pentru Windows), Unix şi MacIntosh.

1.3. O primă privire asupra unui calculator
Un calculator este o maşină care poate rezolva probleme în folosul oamenilor prin executarea instrucţiunilor care i-au fost date. O secvenţă de instrucţiuni care descrie cum se execută o anumită sarcină se numeşte program. Materia primă pe care o folosesc calculatoarele sunt datele. Prin intermediul programelor, calculatoarele prelucrează datele pentru a extrage informaţiile necesare. În principiu, datele şi informaţiile înseamnă acelaşi lucru. Datele reprezintă informaţii în stare brută, care urmează să fie prelucrate în vederea obţinerii anumitor informaţii ce sunt utilizate în continuare în luarea unor decizii. Ce este informaţia? Matematicienii spun că informaţiile reprezintă ceea ce este necesar pentru a răspunde la o întrebare. Cele mai simple întrebări sunt cele la care se poate răspunde prin da sau nu, iar cantitatea de informaţie necesară pentru a 3

UTILIZAREA CALCULATOARELOR

răspunde la o asemenea întrebare reprezintă cel mai mic volum de informaţie şi este denumită bit. În termeni matematici, valoarea unui bit poate fi 0 sau 1, respectiv adevărat sau fals. În termenii ingineriei electronice, valoarea unui bit poate fi un nivel ridicat de tensiune sau un nivel coborât de tensiune. În cazul unui suport magnetic (hard disc), valoarea unui bit poate fi reprezentată prin magnetizarea unei zone a suportului într-un anumit sens sau prin magnetizarea în sens opus. Aşadar, cantitatea de informaţie se măsoară în biţi. La nivelul cel mai de jos pe care îl înţelege calculatorul, instrucţiunile care compun programul unui calculator reprezintă o succesiune de numere, care constituie limbajul maşină. Aceste instrucţiuni sunt rareori mai complicate decât: Adună două numere Verifică dacă un număr este egal cu zero. Transferă date dintr-o zonă a memoriei în altă zonă a memoriei. Numerele care reprezintă instrucţiunile sunt de asemenea reprezentate prin biţi. În concluzie, cele două mari entităţi care împreună constituie „obiectul de lucru” al calculatorului, programele şi datele, sunt reprezentate în formă binară. În figura 1.1 se prezintă schema bloc a unui calculator.

Fig. 1.1. Structura unui calculator.

4

UTILIZAREA CALCULATOARELOR

Structura unui calculator, figura 1.1, conţine următoarele componentele logice: 1. Calea de intrare a informaţiilor: tastatura, dar aici pot intra de asemenea discheta, unitatea de CD-ROM. 2. Unitatea de prelucrare a informaţiilor, având ca principal element UAL (unitatea aritmetică şi logică). Aceasta face parte din UCP (unitatea centrală de prelucrare, care este de fapt procesorul calculatorului). 3. Stocarea informaţiilor (date şi programe): a) informaţii care nu se pierd niciodată; sunt memorate în memorii electronice nevolatile de tip ROM; ex: programul BIOS, este rulat la pornirea calculatorului; b) informaţii care se pierd când calculatorul se deconectează de la reţeaua de alimentare sau se iniţializează; sunt memorate în memorii electronice volatile de tip RAM; Obs: memoriile de tipul a) şi b) sunt foarte rapide, lucrează aproape la fel de rapid ca UCP c) informaţii care pot fi păstrate un timp îndelungat dar cu posibilităţi de modificare: stocarea pe disc; în acest caz există viteză mică de acces, dar capacitate mare; programele şi datele necesare la un moment dat se încarcă de pe disc în RAM. 4. Calea de ieşire a informaţiilor: monitorul, mai pot fi însă imprimanta, discheta sau alte dispozitive de memorare externe. 5. Componenta care controlează ce fac celelelate componente. Aici intră dispozitivele de control ale PC-ului, care sunt incluse în UCP, alături de UAL. Magistrala, reprezinză o interfaţă (modalitate de legătură) standardizată care asigură transferul informaţiilor între diferitele componente.

5

UTILIZAREA CALCULATOARELOR

CAPITOLUL 2

Sisteme de numeraţie. Coduri. Porţi logice
2.1. Sisteme de numeraţie
Un sistem de numeraţie este un mod de reprezentare a numerelor ce foloseşte simboluri diferite între ele, numite cifre. Totalitatea simbolurilor utilizate de un sistem de numeraţie pentru a scrie numerele reprezintă alfabetul acelui sistem de numeraţie. Numărul de cifre (simboluri) utilizate este egal cu baza sistemului de numeraţie. Sistemul de numeraţie folosit zi de zi este cel zecimal, în care baza este numărul 10. Este un sistem de numeraţie poziţional deoarece valoarea unei cifre depinde de poziţia sa în reprezentarea numerelor. Un sistem de numeraţie într-o bază B are următoarele caracteristici: - utilizează un număr de B simboluri (cifre) care formează un şir de numere consecutive; - prima cifră din şir este 0; - cifrele au valori diferite, valoarea cea mai mare este cu o unitate mai mică decât baza sistemului, adică B-1; - în funcţie de poziţia lor în număr, cifrele se înmulţesc cu puteri crescătoare ale bazei B. Valoarea zecimală (D) a numărului va fi calculată cu relaţia

D = ∑α i B i
i =0

N −1

(1)

unde αi sunt simbolurile utilizate, N numărul de cifre pe care se face reprezentarea numărului (zecimal) D în baza B. Sistemul binar B=2. αi∈{0,1} ; cifrele se numesc biţi, notaţia consacrată este bi. Secvenţa de 8 biţi se numeşte octet (byte). O secvenţă cu mai mulţi biţi se numeşte cuvânt (word). Există cuvinte de 16 biţi, 32 biţi, 64 biţi.

6

UTILIZAREA CALCULATOARELOR

În cazul codului binar natural (CBN) există următoarea corespondenţă biţiponderi: număr bN-1 bN-2 ... bi ... b1 b0 ponderi 2N-1 2N-2 ... 2i ... 21 20 MSB LSB MSB: most significant bit LSB: least significant bit Valoarea zecimală a numărului, în cod binar natural, este

DCBN = ∑ bi 2 i
i =0

N −1

(2)

Codul binar natural este un cod unipolar, cu valori zecimale pozitive.

αi∈{0,1, 2, 3, 4, 5, 6, 7, 8, 9,A,B,C,D,E,F}.
Valoarea zecimală a unui număr hexazecimal (în cazul în care secvenţa binară corespunzătoare este în CBN) este D H = ∑ α i 16 i
i =0 N −1

Sistemul hexazecimal B=16

(3)

Mai jos se prezintă câteva corespondenţe între numerele hexazecimale, binare (în CBN pe 4 biţi) şi zecimale: nr. hexazecimal 0 1 3 5 9 A B C D E F nr. binar
CBN

nr. zecimal 0 1 3 5 9 10 11 12 13 14 15
7

0000 0001 0011 0101 1001 1010 1011 1100 1101 1110 1111

UTILIZAREA CALCULATOARELOR

Pentru a putea codifica atât numere pozitive cât şi numere negative este nevoie de un cod bipolar. Codul complementul lui 2 (CCD) este un astfel de cod. În acest caz corespondenţa biţi-ponderi este următoarea: număr bN-1 bN-2 ... bi ... b1 b0 ponderi -2N-1 2N-2 ... 2i ... 21 20 Valoarea zecimală a numărului scris în codul complementul lui 2 se obţine cu relaţia

DCCD = DCBN − b N −1 2 N

(4)

Pentru codarea numerelor negative bitul de semnificaţie maxima (MSB) are valoarea 1, iar pentru codarea numerelor pozitive acest bit are valoarea 0. Mai jos se prezintă corespondenţa între câteva numere hexazecimale, binare în CCD pe 8 biţi şi zecimale: nr. hexazecimal 80 81 ... FE FF 00 01 02 ... 7E 7F nr. binar CCD 1000 0000 1000 0001 ... 1111 1110 1111 1111 0000 0000 0000 0001 0000 0010 ... 0111 1110 0111 1111 nr. zecimal -128 -127 ... -2 -1 0 1 2 ... 126 127

Obţinerea codului CCD pentru un număr negativ. Presupunem că dorim să codăm numărul negativ –5 în CCD pe 8 biţi. Se codează numărul pozitiv +5 în CCD pe 8 biţi, urmează complementarea bit cu bit şi se mai adună valoarea 1: 5 0000 0101 complementare şi adunare 1 1111 1010+ 1 1111 1011 codul CCD pentru -5
8

UTILIZAREA CALCULATOARELOR

În zecimal 1*(-128)+1*64+1*32+1*16+1*8+0*4+1*2+1*1=-5 Codficarea numerelor din zecimal în binar Exemplu: codificarea numărului 25 din zecimal în binar 25 2 24 12 2 1 12 6 2 0 6 3 2 0 2 1 1 Rezultatul este 11001b Codificarea numerelor din zecimal în hexazecimal Exemplu: codificarea numărului 280 280 16 272 17 16 8 16 1 1 Rezultatul este 118h

2.2. Informaţia
Informaţia este un mesaj obiectiv care elimină nedeterminarea în legătură cu realizarea unui anumit eveniment. Shannon a dezvoltat teoria informaţiei. În teoria informaţiei se arată că orice informaţie poate fi exprimată prin informaţii elementare de tipul DA sau NU. Acestea pot fi, de exemplu, 2 nivele de tensiune şi prin urmare se poate construi simplu o maşină de calcul (cu ajutorul unor comutatoare). Informaţia elementară, 0 sau 1, se numeşte bit (de la BInary digiT). Opt biţi formează un octet (un byte). Octetul este o unitate de măsură a informaţiei.

9

UTILIZAREA CALCULATOARELOR

În sistemul zecimal factorul de multiplicare este 103 (103 m = 1000 m = 1 km). În sistemul binar unităţile de informaţie folosesc ca factor de multiplicare 210 = 1024: 1 kB = 1 kbyte = 1 koctet = 210 octeţi = 1024 octeţi 1 MB = 1 Moctet = 210 kocteţi = 1024 kocteţi = 220 octeţi 1 GB = =1 Goctet = 210 Mocteţi = 220 kocteţi = 230 octeţi De ce calculatoarele utilizează sistemul binar ? - O maşină de calcul (calculator) ce foloseşte sistemul binar este simplu de realizat fizic deoarece se utilizează doar 2 stări şi anume 0 şi 1 logic; - Prelucrarea şi stocarea datelor se face cu erori mai puţine decât în cazul în care am avea mai multe stări (B > 2); - Operaţiile aritmetice şi logice sunt simplu de realizat; - Mod simplu de stocare a informaţiei pe diverse suporturi.

2.3. Codificarea informaţiei
Calculatorul trebuie să prelucreze informaţia corespunzătoare limbajului uman. Aceasta foloseşte sistemul zecimal, 26 de litere mici, respectiv mari şi diferite semne speciale (<, >, ? …) . Această informaţie trebuie transformată pentru a putea fi înţeleasă de calculator, care foloseşte sistemul binar. Operaţia de transforare a informaţiei inteligibilă pentru om în informaţie inteligibilă pentru calculator se numeşte codificarea informaţiei. Pentru definirea unui cod trebuie să se stabilească: - numărul de elemente emise de sursa de informaţii, s; - numărul de elemente utilizate pentru construcţia codului, m; - lungimea secvenţei de cod, n. Cu cele m elemente se pot construi mn secvenţe de cod distincte. Codul poate fi construit dacă s ≤ mn. Din această condiţie rezultă lungimea optimă, n, a codului. Exemplu: sistemul zecimal are 10 caractere. Dacă de doreşte codificarea acestora în binar atunci din condiţia 10 ≤ 2n rezultă n = 4. 10

UTILIZAREA CALCULATOARELOR

Un cod alfanumeric binar trebuie să codeze: - cifre (10), - litere mari şi mici (26+26) (alfabetul latin), - semne speciale (32), - comenzi (34), în total 128 de caractere. Din 128 ≤ 2n rezultă lungimea codului n = 7. În decursul timpului au fost utilizate mai multe coduri pe un număr diferit de biţi. S-a stabilit că lungimea optimă a cuvântului de cod este de 8 cifre binare, prin urmare se pot defini 256 cuvinte de cod. Prima firmă care a impus standardul de 8 cifre binare a fost IBM prin codul EBCDIC (Extended Binary Coded Decimal Interchange Code).

2.4. Codul ASCII
Codul ASCII (American Standard Code for Information Interchange) este un cod pe 8 biţi, orientat pe limba engleză şi punctuaţia americană, utilizat de calculatoarele compatibile IBM-PC. Are la bază codul ASCII pe 7 biţi preluat din telefonie ce avea doar 128 cuvinte de cod. Prin marirea lungimii cu un bit au mai fost adăugate încă 128 de caractere ce formează setul extins de caractere ASCII. Codul ASCII este format din: - setul de caractere de bază – 128 de caractere: 00-7Fh; - setul de caractere extins – 128 de caractere: 80-FFh. Setul de caractere de bază cuprinde: - 10 caractere (coduri) pentru cifre - 48-56 (30-39h); - 26 caractere pentru literele mari ale alfabetului latin - 65-90 (41-5Ah); - 26 caractere pentru literele mici ale alfabetului latin - 97-122 (61-7Ah); - 34 de semne speciale - 32-47 (20-2Fh), 58-64 (3A-40h), 91-96 (5B-60h), 123-127 (7B-7F); - 32 de coduri pentru caracterele de control - 0-31 (00-1Fh). Setul de caractere extins cuprinde: - 48 coduri pentru caractere străine 128-175 (80-AFh), coduri organizate pe 3 grupe: 11

UTILIZAREA CALCULATOARELOR

- litere specifice alfabetelor europene diferite de cele ale alfabetului englezesc 128-154 (80-9Ah),160-167 (A0-A7h), - simboluri curente: centul, lira, yenul japonez, peseta spaniolă, francul 155-159 (9B-9Fh), - semne speciale de punctuaţie: semn de întrebare inversat, semn de exclamare inversat, fracţiile, unghiurile, ... - 48 coduri pentru construirea chenarelor 176-223 (B0-DFh) – linii simple, duble, mai groase, mai subţiri ... , - 32 coduri pentru grupul caracterelor ştiinţifice 224-255 (E0-FFh): - literele alfabetului elen folosite în matematică 224-238 (E0-EEh), - simboluri matematice speciale 239-255 (EF-FFh) – integrală, ridicare la pătrat ... . Caracterele de control din setul de bază al codului ASCII sunt folosite pentru controlul editării, a imprimantei sau a altor dispozitive, întreruperea execuţiei unui program, controlul comunicaţiei. Exemplu: 3 - întreruperea execuţiei unui program, 8 - Backspace, 9 - Tab, 13 (0Dh) - Enter, 12 (0Ch) - salt la pagină nouă, 26 (1Ah) - marcare sfârşit de fişier ...

2.5. Reprezentarea datelor
Informaţia (numere, litere, desene, sunete, coduri ...) prelucrată de calculator se numeşte dată. Datele reprezintă materia primă a unui calculator. Data este o reprezentare a informaţiei într-o anumită formă în vederea prelucrării, transmiterii şi înmagazinării acesteia pe suporţi tehnici de informaţie. În urma prelucrării de către calculator se obţin noi informaţii. Informaţia este obiectul. Data este modelul de reprezentare a obiectului. Datele pot fi reprezentate printr-un triplet de forma: d = (I, V, A) unde d – dată, I – identificator, V – valoare, A – atribut. 12 (5)

UTILIZAREA CALCULATOARELOR

Identificatorul – simbol ce se asociază unei date pentru a se putea face referiri la ea în timpul procesului de prelucrare a datelor. Valoare – poate fi precizată printr-o enumerare sau proprietate comună. În funcţie de valoare avem: - date variabile – date care pe parcursul procesului de prelucrare pot lua valori diferite din mulţimea de definiţie a datei, - date constante – date care pe parcursul procesului de prelucrare îşi păstrează valoarea primită în momentul în care au fost definite. Atribut – propritate a datei ce determină modul în care va fi tratată aceasta în procesul de prelucrare.

Exemplu: - tipul datei – defineşte apartenenţa datei la o anumită clasă de date: - tip numeric - întreg - real - tip logic - tip alfanumeric - precizia reprezentării interne – defineşte fidelitatea reproducerii obiectului reprezentat de dată. Precizia depinde de zona de memorie afectată datei şi poate fi: - simplă precizie - dublă precizie

2.5.1. Reprezentarea datelor în calculator
Reprezentarea datelor alfanumetice Fiecare caracter (literă, cifră, spaţiu, caracter special) va fi reprezentat (codificat) printr-o secvenţă de 8 cifre binare (un octet) folosind codul ASCII. Asupra acestor date pot acţiona operatorii: - de concatenare (din două şiruri rezultă un şir), - de comparare (se compară secvenţele de cod ASCII, adică se compară două numere). Reprezentarea numerelor întregi Pentru reprezentare se utilizează un număr binar de lungime fixă. Lungimea secvenţei binare este de 8 biţi sau multiplu de 8 biţi. Pentru a obţine lungimea dorită se adaugă biţi (în partea stângă a secvenţei) cu valoare logică zero sau unu în funcţie de semnul numărului. 13

UTILIZAREA CALCULATOARELOR

Număr întreg fără semn. Exemplu: Numărul 5 reprezentare pe 8 biţi 0000 0101 reprezentare pe 16 biţi 0000 0000 0000 0101 biţi pe zero pentru completarea reprezentării Valoarea maximă pentru numărul întreg fără semn are reprezentarea 1111 1111 pe 8 biţi (28-1 = 255) 1111 1111 1111 1111 pe 16 biţi (216-1 = 65535) Număr întreg cu semn Primul bit, cel din stânga reprezentării (MSB), este utilizat pentru precizarea semnului astfel: - 1 – numere negative, - 0 – numere pozitive. Exemplu: numărul 5, reprezentare pe 16 biţi 0 000 0000 0000 0101 bit de semn numărul –5, reprezentare pe 16 biţi în codul modul şi semn (semn şi amplitudine, mărime şi semn) 1 000 0000 0000 0101 bit de semn Modul de reprezentare modul şi semn are o serie de dezavantaje: - biţii de semn ai numerelor care participă la operaţia aritmetică dată trebuie trataţi separat; - există două reprezentări pentru cifra 0: 0 000 0000 0000 0000 şi 1 000 0000 0000 0000; - se impune definirea unei operaţii de scădere a valorilor absolute ale numerelor.

14

UTILIZAREA CALCULATOARELOR

Reprezentarea numerelor negative folosind codul complementul faţă de 2 (CCD) Complementul unui număr întreg negativ nN faţă de 2 este /nN: /nN = 2N - nN unde N – numărul de cifre binare pe care se face reprezentarea. Exemplu: numărul –5 reprezentare pe 16 biţi 216 – 5 = 1 0000 0000 0000 0000 – 0000 0000 0000 0101 = = 1111 1111 1111 1011 bit de semn Domeniu de variaţie este -2N-1 ≤ n ≤ 2N-1 - 1
Reprezentarea numerelor reale

(6)

Numerele reale sunt formate din: - semn - parte întreagă - parte fracţionară (sau parte subunitară) Numerele reale pot fi reprezentate în două moduri: - în virgulă fixă (binary fixed point), - în virgulă mobilă (binary floating point). Reprezentarea în virgulă fixă Reprezentarea numerelor întregi, prezentată anterior, se face în virgulă fixă. Virgula este la dreapta numărului şi partea fracţionară este zero. Numerele reale pot fi reprezentate în virgulă fixă. În acest caz se presupune că partea întreagă este despărţită de partea fracţionară printr-o virgulă a cărei poziţie este fixă. De asemenea sunt fixaţi şi numărul de biţi corespunzători fiecărei părţi. Exemplu: Considerăm reprezentarea numerelor reale pe 8 biţi din care primii 5 codează partea întreagă şi ultimii 3 partea fracţionară. 15

UTILIZAREA CALCULATOARELOR

Dacă sunt codate doar numere pozitive atunci valoarea lor se obţine cu relaţia:
D = ∑ bi 2 i +
i =0 4 −3

∑b
j = −1

j

2j

(7)

Domeniul de variaţie este binar 00000 000 zecimal 0

11111 111 31,875

Codarea numerelor cu semn –> MSB – bit de semn şi se notează cu S (0 – pozitiv, 1- negativ). Pentru cod semn şi amplitudine avem relaţia:
3 S⎛ D = (− 1) ⎜ ∑ bi 2 i + ⎜ ⎝ i =0

∑b
j = −1

−3

j

⎞ 2j ⎟ ⎟ ⎠

(8)

Domeniu de variaţie binar 11111 111 zecimal -15,875 Pentru CCD avem relaţia:

01111 111 15,875

D = (− 1) ⋅ S ⋅ 2 4 + ∑ bi 2 i +
i =0

3

∑b
j = −1

−3

j

2j

(9)

Domeniu de variaţie binar 10000 000 zecimal -16

01111 111 15,875

În toate cazurile rezoluţia este 2-3 sau 0,125. Reprezentare fracţionară – CCD fracţionar sau Q(N-1) număr S b1 b2 ... bi ... bN-2 bN-1 ponderi -1 2-1 2-2 ... 2-i ... 2-(N-2) 2-(N-1) MSB LSB

16

UTILIZAREA CALCULATOARELOR

Domeniu de variaţie binar 100...000 zecimal -1

011...111 1-2-(N-1)

Reprezentare în virgulă mobilă Reprezentarea în virgulă mobilă, numită şi reprezentare în virgulă flotantă sau notaţie ştiinţifică, utilizează o tehnică de scalare automată. Un număr notat Nr se poate reprezenta în virgulă mobilă sub forma: Nr = ±M·B±E (10)

unde M – mantisa – indică valoarea exactă a numărului într-un anumit domeniu (număr fracţionar cu semn), E – exponentul – indică ordinul de mărime al numărului, B – baza sistemului de numeraţie. De obicei, câmpul rezervat exponentului conţine o valoare numită caracteristică (C), care se obţine prin adunarea unui deplasament (o constantă) la exponent astfel încât să rezulte o valoare pozitivă. În acest caz exponentul nu are nevoie de semn. Caracteristica va fi: C = E + deplasament Prin şirul de biţi utilizaţi se reprezintă semnul mantisei, exponentul şi mantisa. Baza este implicită. Ex: Caracteristică codată pe 8 biţi Domeniul de valori 0 ÷ 255 Deplasament: 128 (80h) => Exponent – domeniu de valori –128 ÷ +127 => Exponent negativ pentru C < 128 pozitiv pentru C > 128 zero pentru C = 128 M = 0 => numărul codat este 0 chiar dacă E ≠ 0. În acest caz avem un “zero impur”. Recomandare – pentru codarea numărului 0 să se folosească cel mai mic exponent posibil pentru a rezulta un “zero pur”.

17

UTILIZAREA CALCULATOARELOR

Exponent deplasat C = E + deplasament E minim = -128 deplasament = 128 => caracteristica C = 0. Rezultă aceeaşi reprezentare pentru valoarea 0 atât în virgulă mobilă cât şi în virgulă fixă. Reprezentarea numerelor în formatul IEEE 754 În trecut, diferitele familii de calculatoare aveau moduri diferite de codare şi execuţie a operaţiilor în virgulă mobilă. Pentru a facilita portabilitatea programelor de la un calculator la altul, Societatea de Calculatoare a IEEE (Institute of Electrical and Electronics Engineers) a elaborat un standard, publicat în 1985, pentru reprezentarea numerelor şi efectuarea operaţiilor aritmetice în virgulă mobilă. În standardul IEEE 754 se definesc următoarele formate sau precizii: - simplă, - simplă extinsă, - dublă, - dublă extinsă. Parametrii formatelor (standardul IEEE 754) Precizie Precizie Precizie Precizie simplă simplă extinsă dublă dublă extinsă Biţi ai mantisei 24 ≥32 53 (fracţiei) Exponent 127 ≥1023 1023 real maxim Exponent -126 ≤-1022 -1022 real minim Deplasament 127 Nespecificat 1023 exponent În cazul preciziei simple asignarea biţilor este următoarea: 31 30 23 22 S Exponent 1 8 0 Fracţie 23 18 ≥64 ≥16383 ≤-16382 Nespecificat

indicele biţilor

numărul de biţi utilizaţi

UTILIZAREA CALCULATOARELOR

Mantisa se reprezintă în format normalizat. Acest lucru înseamnă că bitul MSB al mantisei este pe 1 şi în acest caz nu se mai reprezintă. Prin urmare M = 1,F unde M – mantisă, F – parte fracţionară. Altfel spus 1,0 ≤ M < 2,0. Exemplu 1: Reprezentarea binară a numărului –0,75 în binar, virgulă mobilă, precizie simplă. Numărul –0,75 se mai poate scrie si –(0,5+0,25) adică în “binar” –0,11 (0,5=2-1; 0,25=2-2). Folosind notaţia ştiinţifică –0,11·20, forma normalizată –1,1 ·2-1. Exponent = -1 + 127 = 126 (7Eh) Reprezentare în binar 1 0111 1110 1000 0000 0000 0000 0000 0000 | | Exemplu 2: Care este numărul zecimal reprezentat de următorul cuvânt scris în virgulă mobilă, precizie simplă? 0 1000 0011 0110 0000 0000 0000 0000 0000 | | Bit de semn = 0 => nr. pozitiv; exponentul = 83h = 131, fracţia = 1·2-2 + 1·2-3 = 0,25 + 0,125 = 0,375. Valoarea numărului este: (-1)0·1,375·2(131-127) = 1,375·24 = 1,375·16=22.

19

UTILIZAREA CALCULATOARELOR

2.6. Porţi logice
Un circuit numeric lucrează cu doar două valori, numite logice. Fiecărei valori logice îi corespunde un nivel de tensiune dintr-o anumită plajă. De obicei, valoarea tensiunii se află în intervalele: nivel logic interval tensiune 0 0V ÷ 0,8V 1 2,8V ÷ 5V Circuitele elementare care au la intrare, respectiv ieşire, semnale cu valori în intervalele prezentate se numesc porţi logice. Circuitele numerice complexe conţin mai multe porţi logice. Principiul de funcţionare al porţilor logice poate fi prezentat cu ajutorul unor comutatoare. Comutatorul funcţionează astfel: - închis când este comandat de o tensiune ridicată (1 logic), - deschis când este comandat de o tensiune coborâtă (0 logic). În continuare se prezentă trei exemple de porţi logice. Cu +V a fost notată tensiunea de alimentare (+5V) şi cu ┴ simbolul pentru masă (potenţial de referinţă, 0V). Inversor logic (NOT) Uin – 1 logic (~5V), K – închis, Uout – 0 logic (~0V) Uin – 0 logic (~0V), K – deschis, Uout – 1 logic (~5V)
Uin +V R Uout

K

20

UTILIZAREA CALCULATOARELOR

Circuit ŞI-NU (NAND)
+V R Uout U1 K2

Circuit SAU-NU (NOR)
+ R Uou

U1 U2

K

K1

U2

K2

Circuitul ŞI (AND) se obţine conectând un inversor la ieşirea circuitului ŞI-NU (NAND). Circuitul SAU (OR) se obţine conectând un inversor la ieşirea circuitului SAU-NU (NOR). Circuitul electric care ia decizii se numeşte poartă logică. Cel care memorează o stare se numeşte bistabil (latch), sau pur şi simplu memorie. Matematicianul englez George Boole a arătat că procesul de luare al deciziilor se poate face prin aplicarea unor principii de algebră. În 1847 el a pus bazele algebrei booleene (logică booleeană). A redus propoziţiile la simboluri şi operaţii formale astfel, propoziţiile logice putând fi rezolvate la fel ca şi ecuaţiile matematice. Funcţiile tuturor operatorilor din logica booleană pot fi executate cu ajutorul porţilor logice. Întrebari 1) Care este cel mai mic respectiv cel mai mare număr zecimal ce poate fi scris în CBN pe 8 biţi? Dar în CCD pe 8 biţi? 2) Care este reprezentarea numărului 1850 în binar, CBN, respectiv în hexa? Care este numărul minim de biţi respectiv octeţi pe care se poate reprezenta numărul 873? 3) În 2 Mocteţi câţi octeţi sunt? Dar biţi? 4) În ce mod se face reprezentarea în virgulă fixă a numerelor fracţionare? 5) În ce mod se face reprezentarea în virgulă mobilă a numerelor fracţionare? 21

UTILIZAREA CALCULATOARELOR

CAPITOLUL 3

Arhitectura unui calculator IBM-PC
Partea hardware a unui calculator este formată din trei mari componente: - unitatea centrala de prelucrare (UCP) sau procesorul (microprocesorul), - memoria internă, - echipamente de intrare-ieşire. Componentele calculatorului sunt conectate între ele prin intermediul unor magistrale. O magistrală este formată din mai multe linii fizice pe care se transmit informaţii sub formă binară.

3.1. Unitatea centrală de prelucrare
Unitatea centrală de prelucrare (Central Processing Unit - CPU) sau procesorul este cea mai importantă piesă a calculatorului. Are mai multe funcţii: - coordonează şi controlează activitatea calculatorului, - interpretează programele, - identifică şi decodifică instrucţiunile, - în funcţie de rezultatul decodificării activează alte circuite sau execută operaţii aritmetice şi logice. Orice procesor (microprocesor) conţine patru blocuri funcţionale: - unitatea de comandă şi control (UCC), - unitatea aritmetică şi logică (UAL), - registre proprii, - unitatea de interfaţă (UI). Primele trei blocuri (UCC, UAL şi registrele) formează unitatea de execuţie (Execution Unit).
Unitatea de comandă şi control (Control Unit) asigură comanda, coordonarea şi controlul activităţii de prelucrare. De asemenea participă la execuţia instrucţiunilor. Pentru fiecare instrucţiune avem patru operaţii de bază: - extragere cod instrucţiune – se extrage din memoria internă a calculatorului o instrucţiune din programul rulat, - decodificare – se decodifică instrucţiunea pentru a afla ce operaţie trebuie executată şi ce date vor fi folosite,

22

UTILIZAREA CALCULATOARELOR

- extragere operand – extrage din memoria internă datele necesare prelucrării, - execuţie – activarea circuitelor din UAL pentru execuţia operaţiei. În funcţie de instrucţiunile unui program ce este executat (rulat), UCC spune UAL ce operaţii să realizeze. În cazul microprocesoarelor moderne UCC trebuie să decidă cum direcţionează comenzile către două UAL şi cât primeşte fiecare.
Unitatea aritmetică şi logică (Arithmetic/Logic Unit) este formată din mai multe circuite specializate în execuţia unei operaţii aritmetice, logice sau de comparare, operaţii cerute de instrucţiuni. UAL preia instrucţiunile decodificate de UCC şi le execută rezultând modificarea datelor din registre. Primele microprocesoare aveau o singură UAL. Circuitele moderne pot conţine mai multe astfel de unităţi. Forma de bază este unitatea pentru numere întregi care execută operaţii matematice simple. Noile microprocesoare conţin una sau mai multe unităţi cu virgulă mobilă care au o precizie mai mare. Primele microprocesoare aveau unitatea cu virgulă mobilă într-un cip separat numit coprocesor numeric sau coprocesor matematic. Registrele proprii (registers) sunt utilizate pentru a păstra temporar anumite informaţii şi anume: - date ce urmează să fie prelucrate, - rezultatele prelucrării, - codul instrucţiunilor, - biţi indicatori de condiţii, - alte informaţii. Există mai multe tipuri de registre. De exemplu: - registre de date – se păstrează date ce urmează să fie prelucrate şi rezultatele prelucrării, - registrul de instrucţiuni – se păstrează codul instrucţiunii curente (instrucţiuea care se execută) în vederea decodificării ei, - registrul contor-program – se păstrează adresa instrucţiunii care urmează să se execute, - registrul contor-date – se păstrează adresa datelor ce urmează să fie prelucrate. Pentru a putea executa o operaţie aritmetică sau logică, UAL are nevoie de cei doi operanzi sursă (orice calcul mai complex se poate reduce la o serie de operaţii cu două numere). Operanzii pot fi luaţi din memorie. Deoarece

23

UTILIZAREA CALCULATOARELOR

microprocesorul are o singură cale de acces la memorie, trebuie ca una dintre valori să se afle într-o zonă de stocare internă numită registru. Soluţia cea mai des folosită în prezent constă în încărcarea ambelor valori în registre interne de unde sa fie utilizate mai departe de UAL. Cu cât există mai multe registre interne, cu atât microprocesorul va fi mai rapid (registrele lucrează la viteza de lucru a microprocesorului faţă de memorie care lucrează la o viteză mai mică). Cercetările au arătat ca numărul optim de registre este 32.
Unitatea de interfaţă (Bus Interface Unit) sau unitatea de intrare ieşire face legătura între microprocesor şi restul circuitelor din calculator. Ea realizează funcţia de transfer a instrucţiunilor şi datelor înspre procesor, respectiv de la procesor, în acelaşi timp asigurând şi sincronizarea transferului. De asemenea, aceasta unitate asigură corespondenţa dintre nivelul semnalelor corespunzătoare circuitelor interne şi nivelul semnalelor utilizate de celelalte componente cu care microprocesorul este conectat. Ex: circuitele interne ale microprocesorului sunt proiectate să funcţioneze la curenţi foarte mici pentru a prelucra rapid informaţiile şi pentru a degaja mai puţină căldură (consum redus). Toate semnalele care ies din microprocesor trec printr-un buffer de semnal, aflat în unitatea de interfaţă, în care puterea semnalelor este mărită pentru a putea fi controlate legăturile cu componentele externe. Microprocesoarele folosesc trei tipuri de conexiuni de la unitatea de interfaţă la celelalte dispozitive externe: - conexiuni care indică adresa locaţiilor de memorie cu care procesorul lucrează la un moment dat (magistrala de adrese), - conexiuni care transportă datele sau instrucţiunile (magistrala de date)., - conexiuni prin care se specifică modul de operare al componentelor cu care procesorul este conectat – sensul de transfer al datelor, dispozitivul care va funcţiona, cereri de întrerupere ... (magistrala de control).. Un microprocesor care poate transfera mai mulţi biţi de date în acelaşi timp este mai rapid decât un altul care transferă (utilizează) mai puţini biţi. Microprocesoarele au folosit magistrale de date de 8, 16 sau 32 de biţi şi mai nou de 64 de biţi. De asemenea, dacă pe magistrala de adrese sunt disponibili mai mulţi biţi, cantitatea de memorie adresată de microprocesor creşte. În prezent se folosesc magistrale de adrese pe 32 de biţi sau mai mulţi.

24

UTILIZAREA CALCULATOARELOR

Tehnologii moderne Instrucţiunile se execută (prelucrează) sincronizat cu un anumit semnal de tact numit ceas (clock). Marea majoritate a tehnicilor moderne de proiectare a microprocesoarelor urmăresc realizarea unor circuite (cipuri) care să prelucreze mai multe instrucţiuni la o frecvenţă de tact dată. Mărirea vitezei de lucru se poate face prin reducerea numărului de paşi interni care trebuie să fie parcurşi. Acest lucru se poate face în 2 moduri: - dezvoltarea unor microprocesoare complexe care să poată combina etapele de execuţie – cipuri CISC (Complex Instruction Set Computer – Calculator cu set complex de instrucţiuni), - folosind instrucţiuni mai simple care au nevoie de mai puţine etape – cipuri RISC (Reduced Instruction Set Computer – Calculator cu set redus de instrucţiuni). O altă cale de reducere a numărului de cicluri (paşi) cerute de programe este prelucrarea simultană a mai multor instrucţiuni, de exemplu prin prelucrarea paralelă. Prelucrarea paralelă Primele microprocesoare lucrau secvenţial. Adică, se citea o instrucţiune din memorie şi după execuţia ei se trecea la următoarea instrucţiune. În prelucrarea paralelă se permite citirea următoarei instrucţiuni înainte de a termina prelucrarea instrucţiunii curente. Acest lucru este posibil deoarece fiecare instrucţiune are nevoie de mai mulţi paşi (operaţii de bază ce se execută într-un interval de timp numit ciclu maşină) care se execută în diferite părţi ale cipului. Acest mod de lucru se numeşte tehnică pipeline (conductă). Rezultatul acestui mod de lucru este că utilizatorul “vede” că o instrucţiune se execută într-un singur ciclu maşină în loc de mai multe. Cu cât se pot prelucra simultan mai multe instrucţiuni cu atât viteza de lucru creşte. Există şi un dezavantaj: programele reale au ramificaţii, adică blocurile de instrucţiuni ce urmează să fie prelucrate diferă în funcţie de rezultatul obţinut în urma rulării unei (sau a mai multor) instrucţiuni. În acest caz, conţinutul canalului de prelucrare paralelă este eliminat şi începe încărcarea sa cu alte instrucţiuni => se pierde timp. În microprocesoarele mai puternice se foloseşte o tehnologie numită logică de predicţie a ramurilor. Adică se execută instrucţiunile mai posibile. 25

UTILIZAREA CALCULATOARELOR

Uneori predicţia este adevărată, alteori falsă şi în acest caz toate rezultatele obţinute prin speculaţie trebuie eliminate şi apoi executat codul corect. Seturi de instrucţiuni Prin intermediul instrucţiunilor se specifică microprocesorului ce să facă. Pentru o instrucţiune circuitele interne ale microprocesorului execută sute sau mii de operaţii logice. Această serie de operaţii logice poate fi controlată în mai multe moduri. Pentru construcţia primelor calculatoare electronice a fost folosit modelul cablat. Fiecare instrucţiune activa circuitele necesare pentru executarea operaţiilor logice necesare. Avantaj – model simplu, viteză mare de lucru. Dezavataj – componentele hardware şi software sunt strâns legate. O modificare în hard presupune şi o modificare în soft => modificarea programelor. Microcod Primele calculatoare comerciale au fost proiectate pentru o anumită aplicaţie. Ex. modelul IBM 701 a fost destinat aplicaţiilor ştiinţifice iar modelul IBM 702 a fost destinat aplicaţiilor comerciale şi pentru afaceri. Pentru a putea construi un calculator care să satisfacă toate cerinţele au fost combinate seturile de instrucţiuni corespunzătoare calculatoarelor orientate pe aplicaţii rezultând un set de instrucţiuni extins. A rezultat un nou calculator, numit IBM 360 (lansat în 1964), care a fost creat nu ca un ansamblu hardware, ci ca o arhitectură. IBM a dezvoltat specificaţii şi reguli privind modul de operare a calculatorului lăsând partea hardware pe seama proiectanţilor. Adică, au fost definite instrucţiunile ce trebuie executate, nu şi circuitele care execută aceste instrucţiuni. Astfel, instrucţiunile nu mai controlează direct componentele hardware. În această tehnologie o instrucţiune determină un calculator să execute un mic program care efectuează operaţiile logice necesare execuţiei instrucţiunii. Mulţimea de microprograme corespunzătoare tuturor instrucţiunilor pe care le înţelege calculatorul reprezintă microcodul acestuia. Cu ajutorul microcodului noile sisteme de calcul păstrează compatibilitatea cu modelele anterioare. Microcodul dintr-un microprocesor este un set secundar de instrucţiuni ce rulează în interiorul acestuia. 26

UTILIZAREA CALCULATOARELOR

Cu ajutorul microcodului se pot proiecta calculatoare (microprocesoare) cu un număr ridicat de instrucţiuni ce execută funcţii complicate. De asemenea se pot utiliza mai multe instrucţiuni pentru acelaşi tip de operaţie în scopul creşterii vitezei de calcul. Ex. 8 instrucţiuni diferite de adunare (în cazul microprocesorului 8086). Microprocesoare RISC Începând din anul 1970 anumiţi cercetători au susţinut că beneficiile oferite de microcod nu justifică pierderile de performanţă. Acestia au început dezvoltarea unor maşini cablate care oferă o viteză de lucru mai mare dar, şi un set redus de instrucţiuni. John Cocke, cercetător la IBM, a observat că mare parte din operaţiile de prelucrare implică utilizarea unui număr redus de instrucţiuni. Rezultatul altor cercetări a dus la o concluzie similară şi anume că aproximativ 20% din instrucţiunile unui calculator efectuează aproximativ 80% din sarcini – regula 80/20. Cocke a proiectat un calculator cu număr redus de instrucţiuni ce puteau fi executate foarte rapid. Lui i se atribuie inventarea calculatorului cu set redus de instrucţiuni (Reduced Instruction Set Computer - RISC) în 1974. Pentru a face diferenţa între aceste microprocesoare şi cele ce folosesc microcodul şi seturi mari de instrucţiuni, acestea din urmă au primit numele de CISC (Complex Instruction Set Computer), adică calculatoare cu set complex de instrucţiuni. Memoria intermediară (cache) Transferul de informaţie între microprocesor (µP) şi circuitele de memorie de pe placa de bază (memoria principală) se face într-un interval de timp mare (zeci de ns) faţă de viteza de lucru a procesorului. Transferul se face prin intermediul unei magistrale externe şi a unui controler (circuit specializat). În interiorul µP există o memorie de capacitate mică dar foarte rapidă. Se numeşte memorie intermediară sau memorie cache (de la cacher – a ascunde). Memoria cache (MC) păstrază cuvintele mai frecvent utilizate. Dacă un anumit cuvânt (de ex. instrucţiune) nu este găsit în MC este citit din memoria principală, memorat în MC după care este citit şi decodificat de unitatea de comandă şi control.

27

UTILIZAREA CALCULATOARELOR

Magistrale Microprocesorul este elementul central al unui calculator. Conectarea µP cu celelalte echipamente de pe placa de bază se face prin intermediul unor magistrale. O magistrală este formată dintr-o mulţime de linii pe care sunt transferate informaţiile sub formă binară (0 şi 1 logic). Pe placa de bază există 3 magistrale: - magistrala de date - magistrala de adrese - magistrala de control Prin intermediul magistralei de date (MD) se transferă date şi instrucţiuni ce fac parte dintr-un program (sau mai multe programe) ce este executat de µP. MD este bidirecţională. În funcţie de procesor, magistrala de date are o lărgime (poate transfera cuvinte) de 8, 16, 32 sau 64 de biţi. Memoriile sunt organizate în locaţii de câte 8 biţi – 1 octet. Un µP cu MD pe 64 de biţi va accesa la un transfer 8 locaţii consecutive de memorie. Magistrala de adrese (MA) este utilizată pentru a indica locul (locaţia de memorie) în care se află informaţia dorită sau locul în care va fi salvată o informaţie. În funcţie de numărul de linii (biţi) pe care le are o MA se pot adresa un anumit număr de locaţii. Cu o MA de n biţi se pot adresa 2n locaţii. În funcţie de procesor avem MA pe 16, 20, 32 sau 36 de biţi. Cu ajutorul MA se pot accesa locaţii dintr-un spaţiu diferit de cel corespunzător memoriei. Aceste locaţii formează spaţiul porturilor de intrare/ieşire (I/O de la input/output) al PC-ului. Pentru porturile de I/O se folosesc 16 linii de adrese (indiferent de lărgimea magistralei de adrese). Porturile de I/O sunt utilizate pentru a transfera informaţii între µP şi alte componente ale PC-ului, inclusiv spre exterior. Magistrala de control (MC) specifică sensul de transfer al datelor, indică dispozitivul care transferă date, transmite cererile de întrerupere ... Întreruperi Întreruperea reprezintă suspendarea execuţiei normale a unui program datorită unui eveniment ce a avut loc în interiorul sau în exteriorul UCP. Suspendarea se face prin salvarea stării programului şi efectuarea unui salt la un alt program (subrutină) ce depinde de evenimentul ce a generat întreruperea. 28

UTILIZAREA CALCULATOARELOR

După tratarea întreruperii (execuţia programului apelat) se va continua rularea programului suspendat din punctul în care a fost întrerupt. Funcţionarea cu întreruperi este mai avantajoasă decât în cazul în care UCP ar trebui să verifice periodic dacă anumite evenimente au avut loc. Întreruperile pot fi interne sau externe, soft sau hard, mascabile sau nemascabile. Dacă o întrerupere este mascată, în cazul în care apare nu este luată în considerare. Procesoarele din familia Intel acceptă 256 de tipuri de întreruperi. În funcţie de tipul întreruperii se stabileşte adresa de început a subrutinei de tratare pe baza unei tabele (vector de întrerupere). Transfer DMA Transferul datelor între un port I/O şi memorie se poate face prin intermediul UCP. În acest caz octeţii sunt citiţi de procesor (salvaţi într-un registru intern) după care sunt transmişi către destinaţie (port sau memorie). Dezavantaj – procesorul nu poate rula un alt program în acest timp, viteză de transfer relativ redusă. Pentru a elimina transferul neeficient prin intermediul procesorului se utilizează un circuit suplimentar numit controler de acces direct la memorie (DMA – Direct Memory Access). UCP specifică controlerului de DMA dimensiunea blocului de octeţi ce vor trebui transferaţi, sursa, destinaţia, adresa de început. Un astfel de transfer se realizează printr-un canal DMA. Întrebări 1) Care este rolul Unităţii de Comandă şi Control al Unităţii Aritmetice şi Logice şi al Unităţii de Interfaţă? 2) Ce este CISC? Dar RISC? 3) La ce este utilă prelucrarea paralelă? Explicaţii. 4) Ce este microcodul? În ce scop se utilizează? 5) Ce este memoria cache? În ce scop se utilizează? 6) Ce este o magistrală? Câte magistrale se află pe placa de bază? 7) Ce este o întrerupere? Care sunt tipurile de întreruperi? În ce scop se utilizează? 8) Ce este transferul DMA? La ce este util?

29

UTILIZAREA CALCULATOARELOR

3.2. Memoria 3.2.1. Memoria primară
Orice calculator (microprocesor) are nevoie de un spaţiu în care să poată stoca programele şi datele (informaţia). Acest spaţiu se numeşte memorie. Fără memorie, microprocesorul ar fi un circuit integrat cu care nu se poate face prea mare lucru. Pentru ca aplicaţiile să poată rula este nevoie de o memorie cu o capacitate suficient de mare. Cu cât capacitatea memoriei este mai mare respectiv, calitatea mai bună (memorii rapide), cu atât aplicaţiile vor rula mai rapid. Accesul la informaţiile din memorie trebuie să se facă sub formă electrică. Într-un calculator, memoria este constituită sub forma unei ierarhii: memoria primară (sistem de stocare primar) şi memoria secundară (sistem de stocare secundar). Memoria primară este utilizată pentru memorarea temporară a informaţiei. Aceasta conţine: registrele UCP, memoria intermediară (cache) şi memoria principală. Stocarea informaţiei se face sub formă electrică cu ajutorul unor circuite integrate (cipuri de memorie). Memoria secundară este utilizată pentru memorarea permanentă a informaţiei. Aceasta se realizează cu ajutorul unor discuri magnetice sau optice. Memoria poate fi volatilă sau nevolatilă. În cazul memoriei volatile, la întreruperea alimentării informaţia se pierde. În general memoria primară este volatilă iar memoria secundară este nevolatilă. Unităţi de măsură Cu ajutorul codului ASCII pe 8 biţi pot fi stocate 256 de simboluri (şi caractere de control) utilizate de oameni. Acest cod este utilizat de sistemele de calcul şi prin urmare unitatea de 8 biţi, numită octet (byte), a devenit standard pentru sistemele de stocare. Intel defineşte cuvântul ca fiind 2 octeţi de date, adică 16 biţi. De asemenea, mai avem cuvânt dublu format din 2 cuvinte (32 biţi – 4 octeţi) şi cuvânt cvadruplu format din 4 cuvinte (64 biţi – 8 octeţi). 30

UTILIZAREA CALCULATOARELOR

Unităţile de bază pentru măsurarea memoriei sunt multipli ai octetului: Unitate Kilooctet (kB) Megaoctet (MB) Gigaoctet (GB) Teraoctet (TB) Dimensiune 1024 octeţi 1024 kiloocteţi 1024 megaocteţi 1024 gigaocteţi

Acces la informaţie Pentru fiecare informaţie care va fi stocată se atribuie o locaţie de memorie ce va avea o anumită adresă. Fiecare adresă corespunde unei locaţii de stocare. Adresa este doar o etichetă dată locaţiei de stocare (locaţiei de memorie). Locaţia de stocare poate fi construită cu ajutorul unor condensatoare, bistabile sau conexiuni fuzibile. Adresele sunt generate sub formă binară în CBN. Codurile de adresă disponibile corespund numărului de linii de adresă ale microprocesorului. În fiecare locaţie de memorie se poate stoca o cantitate de date ce depinde de unitatea de stocare de bază. În funcţie de modelul calculatorului capacitatea locaţiei de memorie variază. Ex: în cazul PC-urilor originale, la fiecare adresă se stochează un octet. Cipurile de memorie se conectează la liniile microprocesorului prin intermediul unui controler de memorie. Acesta are rolul de a converti datele binare într-o formă ce poate fi folosită pentru identificarea locaţiei de memorie adresată la un moment dat. De asemenea, controlerul de memorie asigură şi efectuarea transferului datelor (microprocesor -> memorie sau memorie -> microprocesor). Citirea informaţiei dintr-o locaţie de memorie Microprocesorul pune pe magistrala de adrese adresa corespunzătoare locaţiei dorite. Controlerul de memorie va accesa locaţia dorită şi va pune pe magistrala de date informaţia citită din locaţia de memorie. Microprocesorul citeşte informaţia de pe magistrala de date. Toate operaţiile cu memoria durează cel puţin 2 cicluri de ceas. Înscrierea unei informaţii într-o locaţie de memorie se face similar. Tehnologii Stocarea datelor se face sub 3 forme: electrică, magnetică şi optică. Pentru stocarea magnetică şi optică este necesară o transformare a electricităţii în magnetism sau impulsuri luminoase. Pentru citirea biţilor este necesară o 31

UTILIZAREA CALCULATOARELOR

transformare inversă. Procesul de conversie durează un anumit timp. Avantajul este dat de faptul că informaţia se păstrează un timp mai îndelungat => acest mod de stocare se utilizează pentru sisteme de stocare pe termen lung. În cazul stocării electrice a informaţiei, cu ajutorul unor circuite electrice (integrate), citirea şi înscrierea informaţiei se face mult mai rapid. Are importanţă şi modul de aranjare a biţilor în sistemul de stocare şi anume sub forma unor celule de memorie. Astfel, se poate obţine cu rapiditate informaţia din celula accesată, fără să fie nevoie să se caute această informaţie într-un şir lung de date. Această memorie este numită memorie cu acces aleatoriu sau RAM, acronimul de la Random Access Memory. Memoria cu acces aleatoriu Memoria dinamică Pentru implementarea memoriei RAM, cel mai frecvent se folosesc mici sarcini electrice care vor reprezenta nivelurile logice. Aceste sarcini sunt stocate în condensatoare de dimensiuni foarte mici. Un condensator va stoca un bit de informaţie. Calculatorul verifică dacă un anumit număr de condensatoare (ce corespunde unei locaţii de memorie) sunt încărcate sau nu. Condensatoarele se descarcă în timp deoarece izolatorul dintre armăturile sale nu este perfect şi, în plus, mai apare o scurgere a sarcinilor electrice prin intermediul circuitelor de încărcare/descărcare. După încărcarea unui condensator, timp de câteva zeci de milisecunde se mai poate obţine valoarea logică corectă stocată. În acest interval de timp memoria poate fi accesată pentru cicluri de citire/scriere. După acest interval circuitele de împrospătare a memoriei vor reâncărca condensatoarele ce memorează valoarea logică 1 cu tensiunea maximă corespunzătoare acestei stări logice. În timpul perioadei de împrospătare, memoria nu este disponibilă pentru operaţiile normale (citire, scriere). Accesul la memorie pentru citire face şi împrospătarea celulelor de memorie (aflate pe aceeaşi coloană sau linie). Acest tip de memorie, bazată pe condensatoare, ce necesită împrospătarea periodică a informaţiei, se numeşte memorie dinamică. Circuitele integrate astfel construite se numesc memorii RAM dinamice sau cipuri DRAM. În figura 3.1 se prezintă o celulă de memorie DRAM ce poate stoca un bit

32

UTILIZAREA CALCULATOARELOR

Selecţie linie

Capacitate parazită

Selecţie coloană

Fig. 3.1. Celulă de memorie DRAM de 1 bit.

Selecţia celulei – se aduce 1 logic pe linia selecţie linie. Tranzistorul se deschide şi capacitatea parazită se încarcă cu informaţia binară prezentă pe linia selecţie coloană. Dacă se memorează 1 logic informaţia trebuie reâmprospătată periodic (refresh). Împrospătarea se face prin citirea tensiunii de pe condensator şi reîncărcarea condensatorului. În figura 3.2 se prezintă variaţia tensiunii pe capacitatea parazită după ce se încarcă cu tensiunea corespunzătoare valorii logice 1.

Ucondensator

Se scrie 1 logic

Reâmprospătare

Uprag

0 logic

1 logic

t

Fig. 3.2. Variaţia tensiunii pe capacitatea parazită.

Memoria DRAM are o capacitate mare => se utilizează multe linii de adrese. Din modul de selecţie a unei celule rezultă că linia şi coloana nu trebuie să fie selectate în acelaşi timp. Prin urmare biţii mai puţin semnificativi ai adresei pot fi generaţi cu o anumită întârziere faţă de biţii mai semnificativi. Se 33

UTILIZAREA CALCULATOARELOR

face o multiplexare a liniilor de adrese şi astfel, la intrarea circuitului de memorie se aduc doar N/2 linii de adrese în loc de N linii (corespunzătoare magistralei de adrese a microprocesorului). În figura 3.3 se prezintă structura unei memorii DRAM.
DECODIFICATOR

LATCH

MATRICE MEMORIE

___
Adrese RAS

___
CAS LATCH

AMPLIFICATOR BIDIRECŢIONAL MULTIPLEXOR BIDIRECŢIONAL DATA IN / DATA OUT

__
WE

Fig. 3.3. Structura unei memorii DRAM.

Se utilizează suplimentar două structuri de memorare de tip latch comandate de semnalele: /RAS (Row Address Strobe) – selecţia liniei şi /CAS (Column Address Strobe) – selecţia coloanei. Memorarea adresei se face pe frontul de cădere al semnalelor de comandă. Matricea de memorie este pătrată (are acelaşi număr de linii şi coloane). Creşterea capacităţii memoriei presupune dublarea densităţii pe fiecare dimensiune din plan. Dacă numărul de linii de adrese de la intrarea memoriei se măreşte cu 1 (N se măreşte cu 2) noua capacitate de memorie va fi de 4 ori mai mare decât precedenta. Amplificatorul bidirecţional va generara la ieşirea sa o tensiune proporţională cu nivelul logic al unui bit pornind de la tensiunea existentă pe condensatorul selectat. În figura 3.4. sunt prezentate formele de undă ale semnalelor /RAS, /CAS, adrese şi date pentru citirea datelor din memorie.

34

UTILIZAREA CALCULATOARELOR

Adrese ____ RAS ____ CAS Date

rând

coloană

Date valide ___ WE = 1 tacces

Fig. 3.4. Forme de undă pentru citire date din memorie.

Memorarea adresei de rând respectiv coloană se face în momentele fronturilor descrescătoare ale semnalelor /RAS respectiv /CAS. Atunci când memoria nu transmite informaţii ieşirile de date sunt în stare de impedanţă ridicată. În figura 3.5. sunt prezentate formele de undă ale semnalelor /RAS, /CAS, /WE, adrese şi date pentru înscrierea datelor în memorie. Adrese ____ RAS ____ CAS ___ WE Date
Fig. 3.5. Forme de undă pentru înscriere date în memorie.

rând

coloană

Date valide

Pentru memoria DRAM avem 3 cicluri: - ciclul de refresh, - ciclul de citire, - ciclul de scriere. 35

UTILIZAREA CALCULATOARELOR

Regenerarea se face în acelaşi timp pentru toate locaţiile de pe o linie (rezultă că nu mai este nevoie de semnal /CAS). Se aplică semnalul /RAS iar adresa liniei se obţine cu ajutorul unui numărător intern. Alte cicluri posibile (în funcţie de memoria DRAM): - ciclu citire-modificare-scriere – se citesc datele de la o adresă, se prelucrează şi rezultatul se memorează la aceeaşi adresă, - ciclu de citire în mod pagină – se activează /RAS după care se activează /CAS în mod repetat. Astfel se citeşte mai rapid informaţia de pe o linie, - ciclu de citire în mod nibble – se generează automat 4 secvenţe de /CAS. Memoria statică Memoria dinamică se bazează pe încărcarea unor condensatoare cu sarcini electrice în cazul scrierii unor informaţii respectiv, citirea stării de încărcare a lor în timpul citirii informaţiei. Memoria statică este bazată pe comutatoare care permit sau împiedică trecerea curentului electric. Un comutator controlat de electricitate se numeşte releu. Prin aplicarea unei tensiuni asupra releului acesta va comuta dintr-o stare care nu permite trecerea curentului electric într-o stare care permite acest lucru. Tranzistorii sunt nişte componente electronice care se pot comporta la fel ca şi comutatoarele (regim de lucru blocat sau saturat). Tranzistorii pot fi cablaţi astfel încât să funcţioneze ca un zăvor (închis/deschis) numit bistabil (flip-flop). Cu ajutorul unor astfel de circuite bistabile realizate cu tranzistoare se poate crea o memorie statică. Memoriile RAM statice se numesc SRAM (Static RAM). Acestea nu au nevoie de cicluri de împrospătare periodice ca cele dinamice. Memoriile statice asigură un transfer mai rapid al informaţiilor faţă de memoriile dinamice. Memoria cache este o memorie statică. Atât memoriile dinamice cât şi cele statice păstrează informaţia înscrisă în ele atâta timp cât sunt alimentate. Aceste memorii sunt volatile. În figura 3.6 se prezintă structura unei memorii SRAM.

36

UTILIZAREA CALCULATOARELOR

Intrare Date

...

Adrese DECODIN biţi FICATOR

Linii ___ WR Coloane

MATRICE MEMORIE 2N x 8 biţi

___ WE __ CS __ OE

... Ieşire Date

Fig. 3.6. Structura unei memorii SRAM.

În figura 3.7. se prezintă structura utilizată pentru memorarea unui bit.

DIN

D bistabil D (latch) CLK

Q

DOUT

___ SEL ___ WR de la decodificator

Fig. 3.7. Structura de memorare a unui bit în cazul memoriei SRAM.

Caracteristici: - mai scumpă decât DRAM, - mai rapidă decât DRAM, - consum mai redus decât DRAM, - uşor de controlat, 37

UTILIZAREA CALCULATOARELOR

- capacitate de memorare mai mică decât la DRAM, - interfaţă sincronă sau asincronă. Utilizare: - RAM sau cache în microcontrolere, - cache în microprocesoare sau pe placa de bază, - registre interne ale microprocesoarelor, - buffere pentru HDD, routere, LCD, imprimante, CD-ROM, CDRW ... Câteva tipuri de memorie RAM • Memoria RAM cu coloane statice - Se trimite adresa unei coloane şi se menţine activat semnalul CAS, - Se trimite adresa unui rând şi se activează semnalul RAS (CAS rămâne activ). Operarea se face pe aceeaşi coloană. • Memoria RAM în mod pagină Operarea se face pe acelaşi rând (pagină). Timpul de acces de la o celulă la altă celulă în cadrul unei pagini este de 25 – 30 nanosecunde. • Memoria DRAM sincronă (SDRAM) Acest cip lucrează sincronizat cu calculatorul gazdă. Are canale de operare (pipeline) folosite pentru adresele de coloane de pe o pagină de date. Înainte de a scoate datele corespunzătoare unei adrese primite poate să înceapă prelucrarea pentru obţinerea datelor corespunzătoare unei alte adrese de pe acelaşi rând (pagină). • Memoria DDR-SDRAM (Double Data Rate SDRAM) Se poate spune că se realizează 2 transferuri pe un ciclu de tact: unul pe front crescător, celălalt pe front descrescător. De fapt memoria DDR are 2 semnale diferenţiale de tact CK şi NCK. La fiecare front crescător al unui semnal se transmit date. • Memoria DDR2-SDRAM (Double Data Rate two SDRAM) Operează cu magistrala de date de 2 ori mai repede decât DDR SDRAM. Astfel pe fiecare tact se transferă 4 biţi pe o linie de date. Funcţionează la o tensiune de 1,8 V. • Memoria DDR3-SDRAM (Double Data Rate three SDRAM) Reprezintă o îmbunătăţire a memoriilor DDR2 SDRAM. Pe fiecare tact se transferă 8 biţi pe o linie de date. Funcţionează la o tensiune de 1,5 V (consum redus cu 30% faţă de DDR2 SDRAM). 38

UTILIZAREA CALCULATOARELOR

• Memoria DRAM îmbunătăţită – EDRAM (Enhanced DRAM) şi memoria DRAM cu cache (CDRAM) Au în cip un bloc de memorie statică de cache. Memoria cache este încărcată cu informaţie din memoria DRAM, informaţie ce poate fi citită şi în perioadele de reâmprospătare a memoriei DRAM. • Memoria Rambus DRAM (RDRAM) Are un cache de 2048 octeţi în care se poate încărca o pagină întreagă din memoria DRAM într-un singur ciclu de ceas. Magistrala de conectare între memorie şi controllerul de memorie are lăţimea de un octet. Magistrala rambus lucrează la frecvenţa de 250 MHz şi permite transferarea a 2 octeţi la fiecare ciclu de ceas (unul pe front crescător şi unul pe front descrescător). Module de memorie Cipurile de memorie sunt lipite direct pe o placă de cablaj imprimat din fibră de sticlă epoxidică. Un cip de memorie este adresat la nivel de bit, capacitatea se măsoară în kilobiţi sau megabiţi. Modulele de memorie operează cu octeţi, capacitatea lor se măsoară în megaocteţi. Modulul de memorie are un conector extern cu ajutorul căruia poate fi instalat într-un soclu. Majoritatea modulelor au conectoare CELP (Card Edge Low Profile) cu 30 sau mai multe contacte pe fiecare parte a modulului. Modulele SIMM (Single In-line Memory Module) au circuite integrate pe o singură parte a cablajului imprimat. Contactele de pe părţile opuse ale plăcii sunt legate între ele. Modulele DIMM (Dual In-line Memory Module) au circuite integrate pe ambele părţi a cablajului imprimat. Contactele de pe părţile opuse sunt folosite în scopuri diferite. Viteza de transfer este deseori caracterizată prin lăţimea de bandă (bandwidth) – cantitatea de informaţie transmisă în unitate de timp. Ea se poate exprima şi prin timpul de acces (în ns) – timpul necesar pentru realizarea transferului în/din memorie. Lăţimea de bandă = ftact x numărul de octeţi, unde ftact este frecvenţa magistralei. Se măsoară în MB/s. Ex: ftact = 133 MHz, MD – 64 biţi (8 octeţi) => Lăţimea de bandă = 133 MHz x 8 B = 1064 MB/s. Dacă memoria SDRAM are o magistrală (bus) de date de 64 biţi şi lucrează la o frecvenţă de ceas fclock = 100 MHz atunci lăţimea de bandă este de 800 MB/s. 39

UTILIZAREA CALCULATOARELOR

Memoria DDR SDRAM cu acelaşi bus şi aceeaşi frecvenţă de tact va avea lăţimea de bandă de 1600 MB/s. Producătorul specifică viteza unui modul de memorie prin frecvenţa magistralei (PC100, PC133 pentru modulele SDRAM) sau lăţimea de bandă (PC2400, PC2700 pentru modulele DDR-SDRAM). Memorie numai pentru citire În memoriile RAM se pot înscrie şi citi informaţii. Dacă avem nevoie de o memorie în care să înscriem un program (o informaţie) care mai departe să fie doar citit de calculator, se poate utiliza o memorie numai pentru citire (Read-Only Memory) sau cip ROM. În acest caz, dacă memoria este realizată cu ajutorul unor comutatoare, acestea sunt poziţionate şi blocate (nu mai comută). Unele variante de memorii ROM permit şi înscrierea informaţiei. În figura 3.8 se prezintă structura unei memorii ROM de 1 koctet. A9
. . .

DECODIFICATOR

Linii

MATRICE MEMORIE 1024 octeţi
Coloane

A3 A2 A1 A0 __ CS __ OE D7

MUX1

MUX2

MUX8

D6

D0

Fig. 3.8. Structura unei memorii ROM de 1 koctet.

Memoria ROM programabilă prin mască sau mask ROM Pentru fabricarea unui circuit integrat se folosesc măşti (elementele de circuit de pe cip sunt crescute pe substratul de siliciu). Informaţiile conţinute de acest tip de memorie nu pot fi modificate. Prin procesul de fabricaţie se încrie în memorie programul dorit.

40

UTILIZAREA CALCULATOARELOR

Memoria PROM Memoria PROM (Programmable Read-Only Memory) este un cip de memorie numai pentru citire. Programarea se face de utilizator. Prin fabricaţie toţi biţii au acelaşi nivel logic. Aceste circuite sunt formate din elemente care funcţionează precum siguranţele fuzibile (peliculă de CrNi). Pentru arderea anumitor elemente fuzibile (înscrierea informaţiei) se foloseşte un aparat numit programator sau arzător de PROM-uri. Acesta utilizează un pin special pentru programare la care aplică impulsuri de tensiune (10÷30V). La intrările de date sunt aduse informaţii ce sunt înscrise în urma aplicării impulsului de tensiune la adresa indicată prin intermediul liniilor de adresă. O memorie PROM odată programată nu mai poate fi ştearsă (reprogramată). Memoria EPROM Memoria EPROM (Erasable Programmable Read-Only Memory) este o memorie numai pentru citire cu programare şi ştergere. Memoria EPROM a fost inventată în anul 1971 de inginerul Dov Frohman. Cipurile EPROM au o fereastră în partea superioară, acoperită cu o etichetă care să nu permită luminii să pătrundă. Aceasta deoarece memoriile sunt şterse dacă sunt expuse la o radiaţie ultravioletă. Dacă fereastra nu este acoperită informaţia se poate şterge într-o săptămână dacă cipul este expus la lumina naturală sau în 3 ani dacă expunerea este făcută la lumina fluorescentă. În cazul în care memoriile EPROM sunt şterse se elimină întreaga informaţie ce a fost stocată în ele. După ştergere pot fi rescrise. Informaţia rămâne memorată cel puţin 10 ani. Memoria EEPROM Memoria EEPROM (Electrically Erasable Programmable Read-Only Memory) este o memorie numai pentru citire cu programare şi ştergere electrică. A fost dezvoltată în anul 1983 de George Perlegos. În cazul acestor cipuri, pentru ştergere este nevoie de o tensiune mai mare decât cea normală de funcţionare. Ştergerea şi rescrierea se poate face independent pentru fiecare octet. Dezavantaj – datele înscrise în memorie pot fi modificate doar de un număr finit de ori – de aproximativ 10.000 ori. Informaţia se păstrează mai mult timp ca în cazul memoriilor EPROM. Memoriile în tehnologie NMOS au timpul de acces de ordinul 500 ns, cele în tehnologie CMOS au timpul de acces de ordinul 100 ns.

41

UTILIZAREA CALCULATOARELOR

Timpul de acces – timpul ce trece din momentul în care este pusă adresa pe magistrala de adrese respectiv dată comanda de citire/scriere, până când memoria pune (sau citeşte) informaţia (de) pe magistrala de date. Memoria flash O versiune nouă a cipurilor EEPROM este cipul flash ROM sau memorie flash – memorie EEPROM de capacitate mare. Memoria flash a fost inventată de Dr. Fujio Masuoka în anul 1980. Termenul de flash a fost sugerat de un coleg al Dr. Masuoka care a comparat modul de ştergere al memoriei cu flash-ul unui aparat foto. Aceste cipuri pot fi şterse şi reprogramate, de aproximativ 100.000 de ori, folosind tensiunea de 5 V din interiorul PC-ului. Timp de acces de 50 ns. Memoriile flash ROM moderne permit scrierea şi citirea aleatorie. Cipurile actuale conţin propria logică de control a ştergerii, scrierii şi chiar verifică dacă operaţia de scriere s-a terminat cu succes. Proiectarea memoriilor standard Locaţiile de memorie sunt organizate într-o matrice dreptunghiulară de celule. Fiecare celulă de memorie este identificată în mod unic prin poziţie (rând şi coloană). Liniile de adresare sunt multiplexate în timp. Pe ele sunt trimise atât adresa rândului cât şi adresa coloanei. Pentru a indica ce adresă este trimisă se folosesc 2 semnale: - RAS (Row Address Strobe) – indică faptul că se transmite adresa unui rând, - CAS (Columm Address Strobe) – indică faptul că se transmite adresa unei coloane. Întrebări 1) Ce este memoria primară, respectiv secundară a unui calculator? 2) În ce scop se utilizează memoria primară, respectiv secundară? 3) Cum se efectuează transferul datelor între microprocesor şi memorie? 4) Sub ce formă se stochează datele în memoria primară, respectiv secundară? 5) La ce se referă termenul RAM? Dar ROM? Explicaţii. 6) Memoria DRAM. Realizare, utilizare (stocare şi transfer date). 7) La ce se referă termenul împrospătare (refresh)? 8) Ce este /RAS, respectiv /CAS? Utilizare. 9) La ce se referă termenul SRAM? Explicaţii. 10) Care sunt diferenţele dintre SRAM şi DRAM? 11) Memoriile SDRAM, DDR-SDRAM şi DDR2-SDRAM. Explicaţii. 42

UTILIZAREA CALCULATOARELOR

12) Ce este un modul SIMM? Dar DIMM? 13) Memoriile PROM, EPROM, EEPROM, flash. Explicaţii

3.2.2. Memoria secundară
Memoria secundară este realizată pe baza dispozitivelor magnetice sau optice de memorare a informaţiei. Această memorie este de tip nevolatil. Discheta Discheta (floppy disk – disc flexibil) de 3,5” conţine un disc flexibil din poliester. Pe pe feţele sale este lipit un strat de oxid magnetic (oxid feric). Acest disc este protejat cu ajutorul unei carcase de plastic.
butuc metalic

disc – substrat din poliester acoperit cu oxid magnetic

oxid magnetic (oxid feric) disc flexibil din poliester 0,9 ÷ 2,5 microni
Fig. 3.9. Discheta.

Discul este protejat cu ajutorul unei carcase de plastic (iniţial Mylar). Între disc şi carcasă se află o căptuşeală din material textil neţesut. Istoric Primele modele - diametru 8 inci, acces doar pentru citire, - capacitate 100 kB, - înregistrare pe o singură faţă. Din 1973 utilizatorii pot înscrie date pe disc 1976 - discheta de 5,25 inci (Shugart Associates) 43

UTILIZAREA CALCULATOARELOR

1980 - discheta de 3,5 inci (Sony Corporation) utilizată pe scară largă începând din 1984 (Apple) 1996 Zip (Iomega Corporation) capacitate > 100 MB Particule magnetice mai mici => strat magnetic mai subţire => densitate mai mare de stocare. Particule magnetice aranjate orizontal, aliniere de-a lungul razelor discului (înregistrare orizontală). Aranjare verticală (înregistrare perpendiculară) => capacitate mai mare de stocare faţă de înregistrarea orizontală. Discheta de 3,5” cu capacitatea de 1,4 Mocteţi are 2 feţe, pe fiecare faţă 80 de piste concentrice, pe fiecare pistă 18 sectoare. În timpul funcţionării se roteşte cu o viteză fixă de 300 rotaţii/minut. Rata de transfer a datelor este de 500 kbps (kilo biţi pe secundă) . Hard-discul Hard-discul este un dispozitiv magnetic utilizat pentru stocarea pe termen lung a informaţiei. Cerinţe: - capacitate mare de memorare - viteză mare de transfer a datelor Conţine unul sau mai multe discuri (numite platane) de aluminiu sau sticlă ce sunt acoperite cu o peliculă magnetică subţire. Informaţia este înscrisă pe piste concentrice ce conţin mai multe sectoare. Informaţia se înscrie sau citeşte de pe discuri cu ajutorul unor capete de citire/scriere. Aceste capete se deplasează radial, la distanţă mică faţă de disc (nu ating discul), distanţă cu atât mai mică cu cât suprafaţa discului este mai netedă. Capul de citire/scriere este un electromagnet (bobină de inducţie) care aliniază polarităţile particulelor magnetice de pe discuri la scriere sau, este indus un curent pozitiv sau negativ în bobină în cazul citirii. În zona de “contact” cu discul, spaţiul dintre poli este umplut cu un material nemagnetic – metal în spaţiu (metal-in-gap). În figura 3.10 se prezintă un cap de citire/scriere inductiv.

44

UTILIZAREA CALCULATOARELOR

bobină

material magnetic material (metal) nemagnetic < 25 nm

peliculă magnetică

disc (substrat)

Fig. 3.10. Cap de citire/scriere inductiv.

La noile capete de citire/scriere bobina a fost înlocuită cu un strat subţire de cupru depus pe o peliculă sub forma unei bobine – capete cu peliculă subţire (thin film heads). Capete magneto-rezistive – se măsoară variaţia rezistenţei electrice (a unor materiale din aliaj de fier şi nichel) cauzată de câmpurile magnetice. Discul trebuie să fie cât mai plan şi cât mai neted Substratul este realizat din - aluminiu - este uşor de prelucrat şi se pot obţine suprafeţe netede - este inert prin urmare nu reacţionează cu materialul magnetic depus pe suprafaţa sa - nu este un material magnetic prin urmare nu afectează procesul de înregistrare - este ieftin - sticlă - se pot obţine suprafeţe mai netede faţă de aluminiu - compuşi ceramici (sticle). Mediul în care se face memorarea este o peliculă magnetică subţire (aliaj de cobalt). Pelicula este aplicată prin placare sau prin bombardare (vapori metalici atraşi de disc). Acest mod de depunere are ca rezultat un strat mai 45

UTILIZAREA CALCULATOARELOR

subţire şi mai neted de material magnetic. Prin urmare capete de citire/scriere pot fi dispuse mai aproape de disc. Densitatea de suprafaţă reprezintă cantitatea de date ce poate fi stocată pe o suprafaţă a discului. Unitatea de măsură MB/inci2. Densitatea de suprafaţă depinde de dimensiunea domeniului magnetic. Domeniul magnetic depinde de: - înălţimea la care se deplasează capetele de citire/scriere - dimensiunea particulelor magnetice Domeniul magnetic (regiune magnetică) - stochează un bit - format din câteva sute de particule magnetice - formează un dipol magnetic. Dipolul magnetic generează un cîmp magnetic localizat. Stratul magnetic poate fi distrus datorită şocurilor sau prin contaminarea suprafeţei cu praf sau alte particule poluante. Se utilizează medii sigilate. Există un mic ventil pentru egalizarea presiunii interne cu cea externă => pot intra poluanţi microscopici. Creşterea capacităţii de memorare se poate face prin conectarea mai multor discuri pe acelaşi ax (faţă de un singur disc). În acest caz se măreşte şi inerţia discurilor şi în plus trebuie utilizate mai multe capete de citire/scriere (câte două pentru fiecare disc). Mai multe capete de citire/scriere înseamnă masă mai mare prin urmare, necesitatea utilizării unor mecanisme mai puternice de acţionare. Toate acestea măresc costurile, duc la obţinerea de mecanisme de dimensiuni mai mari prin urmare se măreşte şi consumul. Hard-discurile mai vechi foloseau pentru acţionarea capetelor un mecanism de acţionare pas cu pas cu bandă (band-stepper actuator). În acest scop se folosea un motor pas cu pas (mecanism de acţionare cu buclă deschisă). Hard-discurile mai noi, cu buclă închisă, folosesc (aproape toate) servomecanisme de acţionare cu bobină şi magnet permanent. Sistemul de acţionare a capului determină poziţia corectă prin citirea continuă a unei feţe de disc dedicată acestui scop – suprafaţa servo (variantă iniţială). Astfel, se poate identifica fiecare locaţie de stocare de pe disc. Variantă îmbunătăţită – tehnologie servo înglobată – informaţiile de ghidare sunt stocate pe aceeaşi suprafaţă de înregistrare ca şi datele. Sectorul conţine un preambul cu ajutorul căruia se sincronizează capul, urmează zona de date şi la sfârşit un cod corector de erori. 46

UTILIZAREA CALCULATOARELOR

Informaţia este memorată pe nişte cercuri concentrice – piste (track) – faţă de axul discului. Dacă hard-discul are mai multe discuri, pistele de pe discuri diferite aflate la aceeaşi distanţă de centru formează un cilindru. Fiecare pistă este împărţită în mai multe sectoare de lungime fixă. Dimensiunea unui sector este stabilită prin convenţie la 512 octeţi. Capetele şi cilindrii se numerotează începând cu 0. Sectoarele de pe o pistă se numerotează începând cu 1. În figura 3.11 se prezintă schematic partea mobilă a unui hard-disc.

Fig. 3.11. Partea mobilă a unui hard-disc.

Discurile sunt învârtite de un motor. Dacă acestea au o rotaţie constantă atunci se spune că avem înregistrare la viteză unghiulară constantă (constant angular velocity recording). Numărul de rotaţii pe minut (RPM) este constant. Hard-discul este mai uşor de construit. Fiecare pistă conţine aceeaşi cantitate de informaţii. Pentru înregistrarea unui bit se foloseşte un arc de cerc care are aceeaşi mărime unghiulară (în grade) indiferent de poziţia capului de citire/scriere. Lungimea lineară a unui bit diferă de poziţia capului de citire/scriere fiind cu atât mai mare cu cât capul este mai departe de centrul discului.

47

UTILIZAREA CALCULATOARELOR

Fig. 3.12. Piste şi sectoare.

Pentru a folosi aceeaşi lungime corespunzătoare unui bit indiferent de poziţia capului de citire/scriere se poate folosi înregistrarea la viteză liniară constantă (constant linear velocity recording). În acest caz, un disc de o dimensiune dată poate stoca o cantitate mai mare de informaţii. Viteza liniară constantă presupune schimbarea turaţiei discului în funcţie de poziţia capului de citire/scriere. Din cauza inerţiei acest lucru se face într-un interval mare de timp . Hard-discul se doreşte să fie un echipament care să ofere cu rapiditate informaţia accesată. Din acest motiv, discul (discurile) sunt rotite cu ajutorul unui motor servocomandat de curent continuu (unitatea de disc conţine un senzor care monitorizează viteza de rotaţie => se lucrează la viteză unghiulară constantă). Discurile hard-discurilor actuale se rotesc cu 5400, 7200 sau chiar 10000 RPM (rotaţii pe minut). În cazul hard-discurilor mai vechi, numărul de sectoare este acelaşi pentru toate pistele (viteză unghiulară constantă). Hard-discurile mai noi folosesc înregistrarea pe zone multiple (multiple zone recording - MZR). Această tehnică permite stocarea unui număr diferit de sectoare pe fiecare pistă (pe pistele aflate mai aproape de centru sunt 300 – 400 sectoare, pistele mai depărtate de centru ajung să aibe 800 – 900 sectoare). În acest caz, frecvenţa semnalelor de date creşte în zonele mai apropiate de marginea exterioară a discului. Prin utilizarea înregistrării pe zone multiple creşte capacitatea totală a discului. 48

UTILIZAREA CALCULATOARELOR

Fig. 3.12. Înregistrarea pe zone multiple.

Intercalarea sectoarelor Aranjarea logică a sectoarelor de pe o pistă poate să difere de aranjarea fizică a acestora. Ex: pe o pistă avem 20 sectoare în ordinea 1, 5, 9, 13, 17, 2, 6, 10, ... şi se doreşte citirea sectoarelor 1 şi 2. Sistemul de discuri citeşte sectorul 1 după care aşteaptă 4 sectoare înainte de a citi sectorul 2. Astfel, calculatorul gazdă (mai vechi) poate ţine pasul cu discul. În cazul hard-discurilor cu buffere de pistă, intercalarea nu mai este necesară deoarece acestea citesc o pistă întreagă şi trimit PC-ului doar informaţiile din sectorul (sau sectoarele) solicitat. Deplasarea cilindrilor În timpul în care capul de citire trece de la sfârşitul unei piste la începutul pistei următoare discul se roteşte. Prin urmare trebuie să treacă un timp suplimentar până când începutul noii piste ajunge sub cap. Pentru ca acest interval de timp să fie cât mai mic, pistele sunt deplasate unele faţă de celelalte. Această tehnică se numeşte deplasarea pistelor (track skewing) sau deplasarea cilindrilor (cylinder skewing).

49

UTILIZAREA CALCULATOARELOR

Timpul mediu de acces Timp de aşteptare – întârzierea medie la găsirea unui bit, impusă de mişcarea de rotaţie a discului. Timp de poziţionare – timpul necesar pentru deplasarea capetelor de citire/scriere de la o pista la următoarea pistă. Timpul mediu de acces (average access time) sau timpul mediu de pozţionare specifică durata necesară pentru deplasarea capetelor pe pista din mijloc a discului. Cu cât acest timp este mai mic cu atât hard-discul este mai rapid. Rata de transfer a datelor Rata de transfer este exprimată în megahertzi (MHz) sau megaocteţi pe secundă (MB/s). Rata de transfer depinde de viteza de rotaţie a platanelor şi de densitatea de stocare (numărul de sectoare pe pistă). Ex: considerăm că avem un hard-disc cu viteza de rotaţie a discului de 7200 rot/min şi numărul mediu de sectoare pe pistă 688 (fiecare cu 512 octeţi). Rata medie de transfer este 688x512x7200/60 = 42270720 B/s = 40,3 MB/s
Sistemul de fişiere Sistemul de operare DOS (Disk Operating System) înainte de a stoca un fişier pe disc, îl fragmentează în mai multe părţi numite clustere. Fiecare cluster poate fi stocat oriunde pe disc. Dacă informaţiile sunt stocate în clustere adiacente fizic atunci fişierul va putea fi citit mai rapid. Tabelul de alocare a fişierelor (File Allocation Table - FAT) este utilizat pentru identificarea tuturor clusterelor corespunzătoare unui fişier accesat. Dacă se doreşte înscrierea unei informaţii se verifică în tabelul FAT care clustere sunt accesibile. Dezavantajul utilizării clusterelor – chiar dacă fişierul are dimensiune mică va ocupa cel puţin un cluster. În medie, fiecare fişier stocat pe hard-disc iroseşte o jumătate de cluster. FAT16 foloseşte 16 biţi pentru identificarea clusterelor. Permite utilizarea unui număr de 65536 de clustere denumite în mod unic. Dacă dimensiunea unui cluster este de 2048 octeţi, dimensiunea maximă a harddiscului este de 128 MB. Pentru discuri mai mari, dimensiunea clusterelor trebuie mărită (4096 sau 8192 octeţi). Pentru tabelele FAT16 dimensiunea maximă a discurilor este de 2 GB.

50

UTILIZAREA CALCULATOARELOR

FAT32 foloseşte 28 de biţi pentru identificarea clusterelor (4 biţi sunt rezervaţi pentru utilizări ulterioare). Cu sistemul FAT32 se pot utiliza discuri cu capacităţi pâna la 2048 GB. În funcţie de capacitatea discurilor, clusterele vor avea o anumită dimensiune: Capacitatea discurilor Dimensiunea clusterelor 0 – 6 GB 4 kB 6 – 16 GB 8 kB 16 – 32 GB 16 kB 32 – 2048 GB 32 kB În cazul sistemului de fişiere NTFS (New Technology File System) toate datele folosite pentru descrierea unui fişier sau a unui director de pe disc sunt scrise în tabelul principal de fişiere (Master File Table). Sistemul NTFS vede fişierul ca o colecţie de atribute. Ex: numele fişierului, datele conţinute de fişier, numele utilizatorului (care a creat fişierul), data ultimei modificări. Pentru identificarea atributelor se alocă fiecărui fişier un număr de identificare (ID) unic, pe 48 de biţi (=> putem avea aproape 300.000 de miliarde de intrări). Un fişier poate să crească pâna când ocupă întreg spaţiul disponibil pe disc. Unitatea de alocare este de dimensiune mică (în general de 4 kB).

Formatarea de nivel jos – toate hard-discurile moderne sunt formatate la nivel jos numai în timpul fabricării. Formatarea de nivel jos presupune delimitarea sectoarelor individuale pe suprafaţa pistelor. Partiţionarea – funcţie a sistemului de operare – se stabileşte structura logică a discului. Se împarte discul fizic în mai multe discuri logice. Fiecare disc logic se comportă ca şi cum ar fi un disc separat. Partiţionarea discurilor este utilă deoarece permite păstrarea datelor chiar dacă sistemul de operare (SO) trebuie reinstalat. SO se instalează pe o partiţie şi celelalte partiţii vor fi utilizate pentru pastrarea datelor. Formatarea – sub DOS nu se face altceva decât ştergerea tabelului de alocare. Întrebări 1) Cum/unde se înscrie informaţia într-un hard-disc? 2) Ce conţine şi la ce este utilizat un cap de citire/scriere? 3) Ce caracteristici (proprietăţi) trebuie să aibe discul (substratul) unui harddisc? 51

UTILIZAREA CALCULATOARELOR

4) Cum se poate realiza creşterea capacităţii de memorare? Avantaje şi dezavantaje. 5) Ce este suprafaţa servo şi la ce este utilă? 6) Ce este un cilindru? Ce este o pistă? Ce este un sector? 7) Câte piste are un hard-disc cu 2 platane şi 250 de cilindrii? 8) Înregistrare la viteză unghiulară constantă. Avantaje şi dezavantaje. 9) Înregistrare la viteză liniară constantă. Avantaje şi dezavantaje. 10) La ce se referă tehnica de înregistrare pe zone multiple (MZR)? 11) În ce scop se utilizează tehnica de deplasare a cilindrilor (pistelor)? 12) Ce este FAT şi în ce scop se utilizează? 13) La ce se referă partiţionarea? La ce este utilă? 14) La ce se referă formatarea?

52

Sign up to vote on this title
UsefulNot useful