Sunteți pe pagina 1din 93

Marius L.

Tomescu

Arhitectura sistemelor de calcul


Curs pentru nvmnt la distan

Arhitectura sistemelor de calcul

Arhitectura sistemelor de calcul Curs ID


Cuprins
Cap. 1. Structura de baz a unui calculator 1.1 Reprezentarea numerelor binare 1.2 Numere cu semn 1.3 Sistemul hexazecimal 1.4 Adunarea i scderea numerelor binare 1.5 Lucrare de verificare Nr.1 1.6 Microcipuri i pori logice. Tranzistorul 1.7 Porile logice 1.8 Unitatea Aritmetico-Logic (Arithmetic&Logic unit (ALU) 1.9 Rspunsuri la testele de autoevaluare 1.10 Lucrare de verificare Nr.2 1.11 Microprocesorul. Structura general a microprocesorului 1.12 Generatorul de ceas oscilatorul 1.13 Structura i programarea microprocesorului 8086 1.14 Execuia instruciunilor cod main 1.15 Rspunsuri la testele de autoevaluare 1.16 Lucrare de verificare Nr. 3 1.17 Memoria Principal (RAM) 1.18 Adrese de memorie 1.19 Moduri de organizare a memoriei 1.20 Memoria liniar sau modul real de organizare al memoriei 1.21 Maparea memoriei liniare 1.22 Memoria segmentat 1.23 Maparea memoriei segmentate 1.24 Memoria intermediar 1.25 Lucrare de verificare Nr. 4 1.26 Bibliografie Cap. 2 Cum funcioneaz programele 2.1 Compilatorul 2.2 Asamblorul 2.3 Editorul de legturi 2.4 Realocarea dinamic 2.5 Lucrare de verificare Nr. 5 2.6 Bibliografie Cap. 3 Magistralele unui calculator 3.1 Magistrala de date la procesoarele Z 80 80x86 3.2 Magistrala de adrese la procesoarele Z 80 80x86 3.3 Magistrala de comenzi la procesoarele Z 80 80x86 3.4 Limea magistralei 3.5 Operaii asupra magistralei 3 3 6 8 8 9 10 14 23 28 29 32 35 38 42 49 49 52 53 56 56 57 57 59 60 61 61 62 63 63 64 69 69 69 71 73 73 74 76 76

Arhitectura sistemelor de calcul

3.6 3.7 3.8 3.9

Transferul de date ntre dispozitivele de I/O, procesor i memoria principal Standarde de magistrale Lucrare de verificare Nr.6 Bibliografie

77 82 85 86 87 87 89 91 92

Cap. 4 Memoria secundar 4.1 Discurile magnetice 4.2 Discuri compact inscriptibile 4.3 Lucrare de verificare Nr. 7 4.4 Bibliografie

Introducere
Cartea este adresat studenilor care urmeaz un curs de informatic a unei faculti de specialitate. n special, acest curs, este predat n anul nti, semestrul I, pentru ca studenii s i formeze bazele prelucrrii informaiilor ntr-un calculator.

Obiectivele cursului: Aceast carte are scopul de a iniia studentul n tainele prelucrrii informaiei ntr-un calculator numeric. Acesta ar trebui, n final, s neleag cum se execut un program. Aceast carte nu intr n detaliile fiecrei component a calculatorului; pentru detalii v-a trebui s consultai cri specializate pe fiecare capitol descris n aceast carte.

Durata medie de studiu individual - 2 ore

Arhitectura sistemelor de calcul

Cap. 1. Structura de baz a unui calculator


Obiective: Dup studiul acestui capitol, studentul va avea cunotine suficiente pentru a fi capabil s neleag noiunile de: bite, system de numeraie, numr cu semn. Studentul va avea cunotine suficiente pentru: - a fi capabil s neleag cum funcioneaz porile logice i cum sunt efectuate operaiile aritmetice i logice. - a fi capabil s neleag noiunile de: registre, cod main, viteza unui procesor. - a fi capabil s neleag noiunile de: celul de memorie, adres de memorie, memorie segmentat, memoria virtual.

1.1 Reprezentarea numerelor binare Prin procese de prelucrare specifice, datele se transform n informaie binar. n sistemul (de numeraie) binar exist doar dou cifre posibile, 0 i 1. O cifr binar conine cantitatea de informaie de 1 bit. Informaiile sunt reprezentate ntr-un calculator codificate binar. Unitatea de msur pentru informaie este bitul. Bit este prescurtarea de la Binary Digit, n traducere: cifr binar). Aa cum am vzut, un bit poate lua valoarea 0 sau 1. Acest lucru nseamn c informaia poate fi pstrat fcnd distincie ntre dou valori diferite ale unei mrimi fizice continue, cum ar fi tensiunea (+0V0, +5V1) sau curentul. Cu ct numrul de valori distincte este mai mare, cu att nivelul de separaie ntre dou valori consecutive este mai redus, i prelucrarea informaiei este mai puin sigur. Sistemul de numeraie binar necesit numai dou valori distincte, prin urmare este cea mai sigur metod pentru codificarea informaiei. n continuare sunt prezentai multiplii bitului, att n forma veche ct i n forma nou. Tem de reflecie Concepei un sistem de numeraie ternar i descriei -l n spaiul liber din chenar.

Tabel 1. Multiplii bitului n forma veche


Unitatea de msur 1 byte 1 Kilo byte 1 Mega byte 1 Giga byte 1 Tera byte Abreviere (folosit n scris) 1 byte 1 Kb 1 Mb 1 Gb 1 Tb Echivalentul n bii sau octei 8 bii 210 byte 220 byte 230 byte 240 byte Echivalentul aproximativ n octei 1 1 000 bytes 1 000 000 bytes 1 000 000 000 bytes 1 000 000 000 000 Echivalentul n pagini tiprite un caracter o pagin tiprit 2 sau 3 nuvele o bibliotec personal o biblioteca universitar

Arhitectura sistemelor de calcul

Tabel 2. Multiplii bitului n noua form


Nume kibi mebi gibi tebi pebi exbi zebi yobi Originea kilobinary megabinary gigabinary terabinary petabinary exabinary zettabinary yottabinary Abreviere Ki Mi Gi Ti Pi Ei Zi Yi Mrimea n bii 210 = 10241 220 = 10242 230 = 10243 240 = 10244 250 = 10245 260 = 10246 270 = 10247 280 = 10248 Mrimea corespunztoare n SI K kilo M mega G giga T tera P peta E exa Z zetta Y yotta 103 106 109 1012 1015 1018 1021 1024

S-a convenit ca o grupare de 8 bii s fie numit octet iar o grupare de 16, 32, 64, 128 s fie numit cuvnt pe 16, 32, 64 respectiv 128 de bii.

Aa cum este de ateptat, aceste prefixe se aseamn cu cele comune din SI (Sistemul Internaional de uniti), cu diferena c dei aproximeaz valorile din SI n privina cantitii, prefixele binare denot ca valori exacte numai puteri ale lui 2. Motivul introducerii acestor prefixe provine de la faptul c pn nu de mult, un kilobit de date coninea 1024 de bii, ceea ce reprezenta de obicei o surs de confuzie datorit conveniei generale propagat de SI conform creia "ar trebui" s aib 1000 de bii. Tabel 3. IEC (International Electrotechnical Commission) standard prefixes
IEC, bits Kibibit, 1 Kibibit = 210 bits Mebibit, 1 Mebibit = 220 bits Gibibit, 1 Gibibit = 230 bits Tebibit, 1 Tebibit = 240 bits Pebibit, 1 Pebibit = 250 bits Exbibit, 1 Exbibit = 260 bits Zebibit, 1 Zebibit = 270 bits Yobibit, 1 Yobibit = 280 bits IEC, bytes Kibibyte, 1 Kibibyte = 210 bytes Mebibyte, 1 MiB = 220 bytes Gibibyte, 1 Gibibyte = 230 bytes Tebibyte, 1 Tebibyte = 240 bytes Pebibyte, 1 Pebibyte = 250 bytes Exbibyte, 1 Exbibyte = 260 bytes Zebibyte, 1 Zebibyte = 270 bytes Yobibyte, 1 Yobibyte = 280 bytes

ntr-un calculator informaiile sunt reprezentate sub forma unor grupuri de bii care pot avea lungimea de 8, 16, 32, 64, 128, bii. Noiunea de bit a fost utilizat pentru prima dat de matematicianul Claude Shannon n teza sa de doctorat, acesta a pus bazele unui nou domeniu numit teoria informaiei. n 1964 proiectanii calculatorului mainframe IBM System/360 au stabilit ca i convenie folosirea grupurilor de 8 bii ca unitate de baz a memoriei calculatorului (celula de memorie). Astfel a aprut octetul (o) sau byte-ul (B). Un cuvnt este format din doi sau mai muli octei adiaceni adresai i manipulai mpreun. Mrimea cuvntului reprezint mrimea datelor care sunt optim manevrate de ctre o anumit arhitectur. Cuvintele pot fi succesiuni de 16, 32, 64 de bii. O succesiune de 4 bii (jumtate de octet) se numete nibble. S-a convenit ca o grupare de 8 bii s fie numit octet iar o grupare de 16, 32, 64, 128 s fie numit cuvnt pe 16, 32, 64 respectiv 128 de bii. Observaie: pe un cuvnt de k bii numrul maxim pozitiv ce poate fi reprezentat 2k 1 k k 1 0 este : 111...1 2 2 ... 2 = + + + = = 2k 1 . 2 1 de k ori

Arhitectura sistemelor de calcul

Definiia 1: Un sistem de numeraie este format din totalitatea regulilor de reprezentare a numerelor cu ajutorul unor simboluri numite cifre. Tabel 4. Sisteme de numeraie.
Sistem de numeraie Binar 2 Ternar 3 Cuaternar 4 Octal 8 Zecimal 10 Duodecimal 12 Hexazecimal 16 Vigesimal 20 Sexazecimal 60

Definiia 2: Se numete baza sistemului de numeraie numrul total de cifre distincte utilizate ntr-un sistem de numeraie. Baza sistemului de numeraie se noteaz cu b i satisface condiia b > 1. Numerele pot fi reprezentate n baza b folosindu-se cifrele cuprinse n intervalul [0, b-1]. Definiia 3: Un sistem de numeraie se numete poziional, dac valoarea unei cifre este dat de poziia pe care aceasta o ocup n cadrul numrului. Exemplu: Considerm numrul 2139 scris n baza 10. n=2139 numrul de uniti numrul de zeci numrul de sute numrul de mii Se observ c, n funcie de poziia pe care o ocup, cifra 0 are valori diferite. Datele sunt reprezentate n computer numai n sistem binar, sistemele octal i hexazecimal fiind notaii folosite de ctre programatori pentru scurtarea notaiilor prea lungi care ar rezulta n cazul reprezentrii n binar a numerelor mari. Poziiile cifrelor binare le vom numerota cu: bn b2 b1 b0 , unde bn reprezint bitul cel mai semnificativ (MSB = most significant bit) iar b0 bitul cel mai puin semnificativ (LSB = least significant bit). Conversia unui numr binar ntr-un numr zecimal se face dup urmtoarea formul:
3 2

bn b2 b1 b0 = bi * 2i .
1

Exemplu 10112 = (1 2 ) + (0 2 ) + (1 2 ) + (1 2 ) = 8 + 0 + 2 + 1 = 1110 Conversia unui numr zecimal n numr binar se face astfel: mai nti se mparte numrul ales la 2; restul reprezint cifra cea mai puin semnificativ (cea mai din dreapta) a rezultatului conversiei. Ctul se remparte la 2, se noteaz restul, i procedura se repet cu noul ct (recursiv). Operaia se sfrete cnd ctul devine nul, ca n exemplul urmtor.

i =0 0

Arhitectura sistemelor de calcul

29 / 2 =14 rest 1 LSB b0 14 / 2= 7 rest 0 b1 7 / 2=3 rest 1 b2 3 / 2=1 rest 1 b3 1 / 2=0 rest 1 MSB b4 MSB LSB

1*24+ 1*23+ 1*22+ 0*21+ 1*20=16+8+4+0+1=29 Observaie: b0, bitul cel mai puin semnificativ (LSB) ne indic paritatea numrului (0-par, 1-impar). 1.2 Numere cu semn n sistemul zecimal de numeraie numerele negative sunt reprezentate prin semnul - (minus). n sistemul binar avem doar dou simboluri 0 i 1. Pentru a putea reprezenta numerele binare cu semn acestea sunt mprite n dou componente: semn i mantis, ca n exemplele de mai jos:

11101001 = -23
semn mantis Bitul cel mai semnificativ, MSB, reprezint semnul numrului binar astfel: dac este 0 numrul este pozitiv i dac este 1 numrul este negativ. Aceast reprezentare se numete reprezentare n complement fa de doi. Exemplu de reprezentare pe un octet al unui numr: a) fr semn b) cu semn 00000000 11111111 01111111 - 10000001 0 - 25510 +12710 - -12710 Exemple: 0000 0000 0000 0000 0000 0000 0000 00002 =010 0000 0000 0000 0000 0000 0000 0000 00012 =110 0000 0000 0000 0000 0000 0000 0000 00102 =210 . 01111 1111 1111 1111 1111 1111 1111 11012 = 2 147 483 64510 01111 1111 1111 1111 1111 1111 1111 11102 = 2 147 483 64610 01111 1111 1111 1111 1111 1111 1111 11112 = 2 147 483 64710 . 1000 0000 0000 0000 0000 0000 0000 00002 =-2 147 483 64810 1000 0000 0000 0000 0000 0000 0000 00012 =-2 147 483 64710 1000 0000 0000 0000 0000 0000 0000 00102 =-2 147 483 64610 . 11111 1111 1111 1111 1111 1111 1111 11012 = -310 11111 1111 1111 1111 1111 1111 1111 11102 = -210 11111 1111 1111 1111 1111 1111 1111 11112 = -110 Ca urmare a acestei reprezentri vom putea reprezenta numere ntregi (pe 32 de bii) ntre -2 147 483 648=-231=1000 0000 0000 0000 0000 0000 0000 0000 i

Arhitectura sistemelor de calcul

2 147 483 647=231-1=1111 1111 1111 1111 1111 1111 1111 1111. Ca regul general de calcul avem:
bn 2n + bi 2i .

n 1 i =0

Pentru un numr cu semn, pe 32 de bii vom avea: b31b30 ...b= 0

230 + ... + b1 21 + b0 20 . Truc: Mai simplu, se poate obine negativul unui numr binar inversnd biii i adunnd 1.
31 31 30

(b ( 2 )) + (b

) (

Exemplu: 210=0000 0000 0000 0000 0000 0000 0000 00102 11111 1111 1111 1111 1111 1111 1111 11012 + 12 11111 1111 1111 1111 1111 1111 1111 11102 =-210 Biii sunt numerotai de la dreapta la stnga. Informaiile sunt reprezentate sub form de cuvinte de 16, 32 ,64 de bii. De exemplu reprezentarea numrului 10112 pe un cuvnt de 32 de bii este :
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000001011

Observaie: - pe un cuvnt de n bii numrul negativ cel mai mic ce poate fi reprezentat este : 2n-1. - pe un cuvnt de n bii numrul maxim pozitiv ce poate fi reprezentat este : 2n-1-1. Artificiu de extindere a semnului: Pentru a putea opera cu numere tot mai mari trebuie s se extind numrul de octei pe care este reprezentat respectivele numere. Astfel se trece de la 16 bii la 32, de la 32 la 64 de bii. Aceast trecere se face copiind de 16 respectiv 32 de ori valoarea celui mai semnificativ bit al numrului ce urmeaz a fi extins, i punnd-o n jumtatea din partea stng a cuvntului. Exemplu: 1) Fie urmtorul numr pe 16 bii : 0000 0000 0000 00102=210 prin convertire la 32 de bii vom avea: 0000 0000 0000 0000 0000 0000 0000 00102=210 2) Fie urmtorul numr pe 16 bii : 0000 0000 0000 00102=210 pentru a obine negativul vom avea: 1111 1111 1111 11012 + 12 1111 1111 1111 11102 care convertit la 32 de bii devine 1111 1111 1111 1111 1111 1111 1111 11102

Test de autoevaluare No. 1 n reprezentarea n complement fa de doi s se precizeze care afirmaii sunt adevrate (pentru numere scrise pe 8 bii):

Arhitectura sistemelor de calcul

a) b) c) d)

0000 11112 < 1111 11112 1111 00002 > 0110 00002 1101 00002 < 1111 11112 1010 10102 > 0101 01012 1.3 Sistemul hexazecimal

Sistemul numeric hexazecimal are numrul 16 ca baz a sa. Astfel, exist 16 cifre care se pot gsi ntr-un numr hexazecimal. Aceste cifre sunt "0, 1, 2, 3, 4, 5, 6 , 7, 8, 9, A, B, C, D, E, F". Literele A, B, C, D, E i F n u su n t altceva d ect valorile 10, 11, 12, 13, 14 i 15. n sistemul hexazecimal numerele sunt reprezentate conform descompunerii lor dup puterile lui 16. Fiecare putere a lui 16 are drept coeficient de multiplicare un numr natural cuprins intre 0 i 15. Artificiu de conversie binar-hexazecimal: Exemplu: S se converteasc urmtoarele numere hexazecimale i binare n cealalt baz: ECA8 6420H i 0001 0011 0101 0111 1001 1011 1101 11112. Rezolvare: n primul caz se transform fiecare cifr hexazecimal n corespondentul binar: E C A 8 6 4 2 0H

1110 1100 1010 1000 0110 0100 0010 00002 n al doilea se transform fiecare grup de 4 cifre binare n corespondentul hexazecimal: 0001 0011 0101 0111 1001 1011 1101 11112

1 3 5 7 9 B D FH Tem de reflecie Cum se poate obine, mai simplu, negativul unui numr hexazecimal ? Descriei n spaiul liber din chenar.

1.4 Adunarea i scderea numerelor binare Procesorul unui calculator adun numerele binare exact ca n operaia de adunare normal. Scderea se efectueaz transformnd desczutul n negativul su dup care se adun cu cellalt numr. Exemplu de adunare i scdere n baza doi: 7+6=1310 0000 0000 0000 0000 0000 0000 0000 01112=710 + 0000 0000 0000 0000 0000 0000 0000 01102=610 = 0000 0000 0000 0000 0000 0000 0000 11012=1310 ncepnd de la dreapta spre stnga vom avea: 12+02=12 cu transport 0, apoi transportul 0 +12+12=0 cu transport 12, apoi transportul 12+12+12=12 cu transport 12 . n figura urmtoare este descris adunarea cu evidenierea transporturilor.

Arhitectura sistemelor de calcul

Transportul care este primit din dreapta se mai numete transport de intrare (CarryIn) iar transportul care este generat n urma adunrii se numete transport de ieire (CarryOut). CarryIn

Scderea direct este: 7-6=110 0000 0000 0000 0000 0000 0000 0000 01112=710 - 0000 0000 0000 0000 0000 0000 0000 01102=610 = 0000 0000 0000 0000 0000 0000 0000 00012=110 sau prin adunare 7+(-6): 7+(-6)=110 0000 0000 0000 0000 0000 0000 0000 01112=710 + 1111 1111 1111 1111 1111 1111 1111 10102=-610 = 0000 0000 0000 0000 0000 0000 0000 00012=110 Test de autoevaluare No. 2 Facei urmtoarele calcule : a) b) c) d) 1.5 0000 11112 + 1111 11112 1111 00002 - 0110 00002 1101 00002 - 1111 11112 1010 10102 + 0101 01012 Lucrare de verificare Nr.1

CarryOut

1. n reprezentarea n complement fa de doi s se precizeze care afirmaii sunt adevrate (pentru numere scrise pe 8 bii): a) b) c) d) 2. a) b) c) d) 0111 11112 < 1111 11112 1000 00002 > 0111 11112 1101 00002 < 1111 11112 1010 10102 > 0101 01012 Cte funcii booleene de 5 variabile pot exista ? 232 25 52 32

3. Se poate obine negativul unui numr binar astfel: a) b) c) d) inversnd numrul i adunnd 1 inversnd biii i adunnd 1 adunnd 1 la biii numrului iniial inversnd biii cu valoarea 0 i adunnd 1

Arhitectura sistemelor de calcul

8. O celul de memorie poate fi format din: a) b) c) d) 16, 32 sau 64 bii 8, 16, 32, 64 sau 128 bii 32 bii 16 bii

9. Se dau urmtoarele valori: F, FF, FFF, FFFF, FFFFF, F, care sunt puse adiacent n ordinea specificat n memorie. S se determine irul de adrese (n zecimal) de memorie valide la care pot fi puse datele de mai sus. a) b) c) d) 0,1,2,4,6,9 0, 1, 2, 3, 4, 6 0, 2, 4, 6, 8, 10 0, 4, 8, 12, 16, 20

1.6

Microcipuri i pori logice. Tranzistorul

Tranzistoarele fac parte din clasa de dispozitive electronice semiconductoare (dispozitive care conduc curentul n anumite situaii). Tranzistorul a fost inventat la Bell Telephone Laboratories din New Jersey n decembrie 1947 de John Bardeen, Walter Houser Brattain i William Bradford Shockley. Pentru aceasta realizare cei trei au mprit n 1956 Premiul Descoperirea tranzistorului a determinat dezvoltarea Nobel n fizic. electronicii fiind considerat una din cele mai mari descoperiri ale erei moderne. Denumirea de tranzistor provine de la cuvintele din limba engleza TransferRezistor. Siliciul i Germaniul sunt dou substane de baz din care se fabric dispozitivele semiconductoare (cipurile). Aceste substane sunt izolatori (adic nu conduc curentul). Proprietile electrice ale materialelor semiconductoare sunt determinate de structura atomic. ntr-un cristal pur de germaniu sau de siliciu atomii sunt legai ntr-un aranjament periodic formnd un cub perfect. Fiecare atom din cristal are patru electroni de valent, fiecare interacioneaz cu electronul din vecintatea sa pentru a forma o legtura divalent. Deoarece electronii nu sunt liberi s se mite materialul pur la temperaturi sczute se comporta ca un izolator. Dac n aceste materiale se injecteaz o cantitate mic de impuriti ele pot, n anumite condiii, s conduc curentul electric i la temperaturi sczute. Impuritile sunt de dou tipuri: donatori i acceptori. Donatorii sunt creai prin injectarea antimoniului, arsenicului, fosforului, etc n structura siliciului sau germaniului, formnd astfel un exces de electroni n structura cristalin, numai patru intrnd n legtur divalent cu germaniu sau siliciu. n condiiile aplicrii unei tensiuni electrice, electronul rmas este liber s se mite. Acceptorii sunt creai prin injectarea de galiu (care are trei electroni de valen), indium, etc. n siliciu sau germaniu i produc o deficien de electroni numite guri. Acestea sunt numite impuriti acceptoare deoarece accept electroni de la atomii vecini. Deficienele rezultante sau aa numitele goluri, pe

10

Arhitectura sistemelor de calcul

rnd, sunt umplute de ali electroni. Acestea se comport ca purttori pozitivi micndu-se, n condiiile aplicrii unei tensiuni electrice, n direcia opus electronilor. Astfel de materiale compuse se numesc semiconductori i sunt de dou tipuri. Cei cu exces de electroni se numesc negativi sau de tip n (n-type) iar cei cu guri se numesc pozitivi sau de tip p (p-type). Reprezentarea simbolic pentru acetia este descris n figurile de mai jos:

Figura 2.1 Reprezentarea simbolic a unui tranzistor de tip n-p-n i respectiv p-n-p. Un tranzistorn-p-n are trei terminale: baz, emitor p-n-pi colector (denumite n cazul tranzistorilor MOSFET, poart, surs i respectiv dren), aa cum se vede n figurile 2.1 i 2.2.

Figura 2.2 Diferite tipuri de prezentare a structurii interne a unui tranzistor. Tem de reflecie Descriei proprietile principale ale unui semiconductor, respectiv ale unui tranzistor. Descriei-le n spaiul liber din chenar.

11

Arhitectura sistemelor de calcul

Metal-Oxide-Semiconductor Field-Effect Transistor (MOSFET) Tranzistorul cu efect de cmp tip Metal-Oxid-Semiconductor (semiconductor cu oxid metalic) TEC-MOS este un dispozitiv semiconductor care formeaz elementul de baz pentru aproape toate circuitele integrate digitale (cipuri) (IC). Funcionarea lui se bazeaz pe modificarea conductibilitii unui canal realizat dintr-un material semiconductor prin aplicarea unui cmp electric. Cu ajutorul lui se construiesc porile logice. MOSFET este de fapt un comutator binar controlat electric. Tranzistoarele cu efect de cmp tip Metal-Oxid-Semiconductor (MOS) sunt dispozitive electronice la care conducia electric este realizat printr-un singur tip de purttori de sarcin electric, electronii sau golurile.
Poart Gril de metal Strat de oxid de siliciu (izolator)

Surs

Dren

Siliciu de tip n

n
Siliciu de tip p

Mas (metal)

Figura 2.3 Tranzistor MOSFET fr tensiune pe poart.

Surs

Poart

Dren

n
substrat de siliciu de tip p Siliciu de tip p

canal semiconductor

Figura 2.4 Tranzistor MOSFET dup aplicarea tensiunii pe poart. Tranzistorul de tip MOSFET are dou zone semiconductoare de acelai fel (de tipul n pentru tranzistorul din figura 2.3) alocate una sursei i cealalt drenei, separate printr-un strat de tipul cellalt (de tipul p). Atta timp ct nu este aplicat o tensiune pe poarta tranzistorului, orice polaritate a tensiunii aplicm ntre dren i surs una din jonciunile p-n va fi blocat i prin urmare nu va trece nici un curent ntre acestea (figura 2.3). Poarta este separat de semiconductorul de tipul p printr-un strat izolator, de oxid de siliciu ca n figura 2.3. n condiiile aplicrii unei tensiuni pozitive pe poart n raport cu substratul de siliciu de tip p, aceast tensiune (prin cmpul electric orientat de poart ctre

12

Arhitectura sistemelor de calcul

substrat) mpinge golurile majoritare din zona p i atrage la suprafaa de separaie a metalului grilei electronii minoritari. n zona p, ntre cele dou zone n apare un strat de electroni minoritari care formeaz un strat de inversie a conduciei. Conducia ntre dren i surs are loc printr-o regiune limitat a semiconductorului, numit canal semiconductor (figura 2.4). Electrodul de comand (poarta) are rolul de a modifica conductivitatea canalului prin variaia valorii curentului comandat. La tranzistoarele MOSFET poarta este izolat prin intermediul unui strat de oxid de siliciu i curentul de poart este de ordinul zecilor de picoamperi. Creterea potenialului grilei (porii) determin creterea limii stratului de inversie (a canalului semiconductor). Aplicnd o diferen de potenial ntre dren i surs electronii din stratul de inversie (din canalul semiconductor), se vor deplasa pe calea n (surs) canal semiconductor format din stratul de inversie - n (dren), formnd astfel curentul care traverseaz tranzistorul. Electrodul de comand (poarta) acioneaz asupra seciunii S a canalului (prin modificarea limii), care modific rezistena canalului R, care modific curentul ce trece prin canal I. ntr-un tranzistor MOSFET prin emitor (surs) sunt injectai purttori majoritari care ajung apoi n regiunea bazei (porii), fiind aici minoritari datorit tipului diferit de dopare a bazei. Majoritatea lor traverseaz aceast regiune ajungnd la colector (dren), i formnd curentul de colector, aproximativ egal cu cel de emitor. O foarte mic parte dintre ei se combin n regiunea bazei cu purttorii majoritari de acolo, determinnd apariia unui curent slab prin terminalul bazei. Acest tip de tranzistori se numesc cu efect de cmp pentru c modificarea conductivitii canalului semiconductor se face cu ajutorul unui cmp electric mai intens sau mai slab n funcie de potenialul electrodului de comand, numit gril sau poart. Curentul se nchide printr-o zon semiconductoare (care reprezint nsi canalul semiconductor) ntre doi electrozi unul numit surs - pentru c furnizeaz purttorii de sarcin i cellalt numit dren - care are rolul de a colecta purttorii. De notat c prin canal circul purttorii majoritari (circul i cei minoritari dar contribuia lor la curentul din canal este mic). Tranzistorul descris mai sus se numete MOSFET cu canal n - indus. n figura 2.5 este prezentat simbolul tranzistorului MOSFET cu canal N indus. Notaiile au semnificaiile: D

S = Surs D = Dren G = Gril (Poart)

G S

Figura 2.5 Simbolul tranzistorului MOSFET cu canal n - indus. Tensiunea de polarizare a grilei este pozitiv ca s formeze canalul materializat prin stratul de inversie iar tensiunea dintre S i D este negativ ca s antreneze electronii de la surs ctre dren, pentru ca n circuit s se stabileasc curentul I orientat de la S spre D. Pe 12 septembrie 1958, inginerul american Jack Kilby, care lucra pentru Texas Instruments, a realizat primul circuit integrat functional din lume i schimba, fara s tie, istoria tehnologiei. Pentru acest fapt a i catigat premiul Nobel, n anul 2000.

13

Arhitectura sistemelor de calcul

Ce este de fapt un circuit integrat ( n engl. integrated circuit cunoscut i sub denumirea de: IC, microcircuit, microchip, silicon chip sau chip, pe rom. cip.)? Un dispozitiv electronic miniaturizat alctuit n principal din componente semiconductoare (diode, tranzistoare) precum i din elemente pasive (rezistente, condensatoare) interconectate, situate pe o suprafa cu un substrat subire de material semiconductor (de obicei din siliciu). Un cip, n cele mai multe cazuri, este nglobat ntr-o capsul etan care are elemente de conexiune electric spre exterior (terminale pini de conectare) figura 2.6. DIP (Dual Inline Package) este varianta clasic de ncapsulare, n care cip-ul este prevzut cu un numr de pini pe partea sa inferioar, pini care vor fi introdui n socluri speciale. Dezavantajul este c datorit rezistenei reduse pinii se pot rupe destul de uor. Numrul componentelor unui cip a crescut de la cteva sute, la cteva mii sau chiar zeci de mii n cazul microprocesoarelor.

Figura 2.6 DIP (Dual Inline Package). Test de autoevaluare No. 3 Descriei principiile de funcionare ale unui tranzistor. 1.7 Porile logice

Primele procesoare moderne au fost construite pe baza circuitelor digitale (microcipuri). Un circuit digital este un dispozitiv electronic simplu care poate lucra numai cu dou valori logice: 0 sau 1. ntreaga logic digital modern are la baz proprietatea tranzistorului de a putea fi fcut s opereze binar foarte repede. Tranzistorul este componenta fundamental cu ajutorul creia se construiesc toate microcipurile. Funcionarea unui tranzistor se face astfel: cnd tensiunea de intrare Vin este sub un anumit prag (de exemplu sub +5V), tranzistorul se nchide acionnd ca o rezisten infinit i producnd o tensiune stabilizat Vout aproape egal cu Vcc (de exemplu +5V). Cnd tensiunea de intrare Vin depete pragul stabilit, tranzistorul se deschide i acioneaz ca un conductor (adic ntre emitor i colector exist conductibilitate electric). n acest caz, se provoac o cdere a lui Vout pn la o valoare de 0V. Se consider c dac Vin> =+5V avem o intrare d e tip 1 i d ac Vin<+5V avem o intrare de tip 0. n acelai mod se trateaz i tensiunile de ieire.

14

Arhitectura sistemelor de calcul

Prin urmare, tranzistorul prezentat formeaz un circuit digital inversor. Tranzistorul este considerat un comutator controlat electronic. Prin combinaii adecvate ale tranzistorilor se pot forma circuite electronice pentru operaiile aritmetice i logice binare.

Figura 2.7 (a) Circuit digital inversor format dintr-un tranzistor sau poart logic NOT. (b) O poart logic NAND. (c) O poart logic NOR. O poart logic este format din unul sau mai multe tranzistoare care pot modela funciile logice de baz. n figura 2.7 sunt prezentate trei pori logice (funcii logice) formate cu unul sau doi tranzistori iar n figura 2.8 sunt prezentate tabelele de adevr ale acestora. Se observ c dac vom pune dou tranzistoare n serie ele vor conduce curentul de la mas la Vout numai dac V1 i V2 sunt mai mari de un anumit prag. Acest fenomen modeleaz o funcia logic NAND (Not AND inversa funciei logice AND). Dac se pun cele dou tranzistoare n paralel, vom avea modelarea unei funcii NOR (Not OR inversa funciei logice OR).

Figura 2.8 Tabelele funciilor logice i reprezentrile lor simbolice. (a) tabela logic pentru funcia NOT. (b) tabela logic pentru funcia NAND. (c) tabela logic pentru funcia NOR. (d) tabela logic pentru funcia AND. (e) tabela logic pentru funcia OR.

15

Arhitectura sistemelor de calcul

Ca i n algebra boolean, orice funcie logic poate fi modelat cu ajutorul celor trei funcii de baz: NOT, AND i OR. Deoarece funcia AND se obine aplicnd NOT funciei NAND (n mod analog se obine i funcia OR) i deci sunt folosii trei tranzistori n loc de doi pentru a forma o poart AND respectiv OR, la fabricarea procesoarelor se pleac de la cele trei pori de baz: NOT, NAND i NOR. Cercurile mici care intr n alctuirea porilor logice reprezint circuite inversoare i au drept rol inversarea semnalului.

Figura 2.9 Cu ajutorul porilor NAND sau NOR se pot construi porile (a) NOT, (b) AND, i (c) OR. Porile descrise mai sus modeleaz funcii logice de forma f : {0,1} {0,1} {0,1}. n alctuirea microprocesoarelor se gsesc foarte des modele de funcii logice de forma f : {0,1}N {0,1}M , unde m, n / N {0} . Utilizm n continuare nmulirea implicit sau un punct pentru funcia boolean AND, numit i conjuncie i + pentru funcia boolean OR, numit i disjuncie. Urmtoarele exemple vor exemplifica variaii ale porilor logice fundamentale. Poarta logic NOT (circuitul invertor). Simbolul pentru circuitul invertor. Dac notm cu P strile de adevr corespunztoare intrrilor de semnal LOW sau HIGH vom observa c pe perioada T0 T2 , P ia valoarea LOW iar f= P ia valoarea HIGH. Pe intervalul T2-T3 P este HIGH i f= P ia valoarea LOW.

Figura 2.10 Poarta logic NOT. Simbolul pentru circuitul invertor i semnalele corespunztoare acestuia.

16

Arhitectura sistemelor de calcul

Poarta logic AND.

Tabel de adevr

Tabel de combinaii

A B f 0 0 1 1 0 1 0 1 0 0 0 1

A B f L L L L

H L L

H L

H H H

Figura 2.11 Reprezentarea simbolic. Semnalele de intrare i ieire pentru o poart logic AND i tabelele de adevr respective. Poarta logic OR.
Tabel de adevr Tabel de combinaii

X Y f 1 0 0 1 0 0 1 1 1 0 1 1

A B f H L L L L H L

H H

H H H

Figura 2.12 Reprezentarea simbolic i semnalele de intrare i ieire pentru o poart logic OR i tabelele de adevr respective. Circuite logice speciale. Poarta logic OR EXCLUSIV (XOR) Aceast poart logic produce ca ieire valoarea logic TRUE numai dac una i numai una dintre intrri este TRUE. n continuare sunt date reprezentarea simbolic, tabelul de adevr i diagrama semnalelor. Figura 2.13 Reprezentarea simbolic i semnalele de intrare i ieire pentru o poart logic XOR.

17

Arhitectura sistemelor de calcul

Figura 2.14 Tabela de adevr pentru funcia XOR i trei circuite pentru calcularea acesteia. Poarta logic NOR EXCLUSIV (X-NOR) Poarta logic X-NOR produce ca ieire valoarea logic TRUE dac i numai dac toate intrrile sunt la fel. Aceast poart nu este altceva dect o poart XOR cu ieirea negat. n continuare sunt date reprezentarea simbolic, tabelul de adevr i diagrama semnalelor.

Figura 2.15 Reprezentarea simbolic, tabelul de adevr, semnalele de intrare respectiv ieire pentru o poart logic X-NOR. Tem de reflecie Determinai tabela de adevr pentru funcia XOR i trei circuite pentru calcularea acesteia, n cazul a trei intrri logice. Scrie i rspunsul n spaiul liber din chenar.

Legile i teoremele algebrei booleene. LAW OF IDENTITY (legea identitii) un termen care este adevrat (TRUE) ntr-o parte a unei expresii este adevrat n oricare parte a expresiei (A = A sau A = A).

18

Arhitectura sistemelor de calcul

COMMUTATIVE LAW (legea comutativitii) ordinea n care termenii sunt scrii nu are efect asupra valorii lor (AB = BA, A+B = B+A). ASSOCIATIVE LAW (legea asociativitii) - A(BC) = ABC sau A+(B+C) = =A+B+C. IDEMPOTENT LAW (legea idempotenei) un termen adunat (nmulit) cu el nsui, n sensul boolean, este egal cu el nsui (AA = A, A+A = A). DOUBLE NEGATIVE LAW (legea dublei negaii) un termen inversat (negat) de dou ori este egal cu el nsui A = A COMPLEMENTARY LAW (legea complementaritii) A A = 0 A + A = 1 . LAW OF INTERSECTION (legea interseciei) valoarea unui termen n conjuncie cu 1 are drept rezultat valoarea termenului respectiv. Valoarea unui termen n conjuncie cu 0 are drept rezultat valoarea 0. (A 1 = A, A 0 = =0). LAW OF UNION (legea reuniunii) valoarea unui termen n disjuncie cu 1 are drept rezultat valoarea 1. Valoarea unui termen n disjuncie cu 0 are drept rezultat valoarea valoarea termenului respectiv(A+1 = 1, A+0 = A). DeMORGAN'S THEOREM aceast teorem are dou pri: (1) AB = A + B

(2)

A + B = AB

DISTRIBUTIVE LAW (legea distributivitii) (1) A (B+C) = AB+AC; (2) A+(BC) = (A+B) (A+C). LAW OF ABSORPTION (legea absorbiei) - A (A+B) = A or A+(AB) = A. LAW OF COMMON IDENTITIES - A ( A +B) = AB i A+ A B = A+B.

Ordinea normal de efectuare a operaiilor logice este: NOT, AND i OR. Operaiile de acelai rang se parcurg de la stnga la dreapta. Aceast ordine poate fi modificat prin inserarea parantezelor. Coninutul parantezelor se evalueaz prima dat, de la stnga la dreapta, iar apoi restul expresiei. Tabelele de adevr pot s descrie complet orice funcie logic combinaional. Paii pentru proiectarea hardware-ului unui circuit combinaional logic sunt (determinarea expresiei analitice pentru o funcie definit prin tabel de adevr):

19

Arhitectura sistemelor de calcul

1. se construiete tabela de adevr care modeleaz intrrile i ieirile circuitului logic respectiv; 2. din tabelul de adevr se determin suma produselor variabilelor pentru care funcia este adevrat, descriindu-se astfel ecuaia logic a circuitului respectiv; 3. se construiesc porile logice bazate pe ecuaia logic. Exemplu: Fie funcia de trei variabile f(A,B,C) definit de urmtorul tabel de adevr:
C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 f 0 1 0 1 0 0 1 0

Din tabelul de adevr se determin suma produselor variabilelor pentru care funcia este adevrat:
f = A B C + A B C + A B C

Acelai tabel de adevr se poate utiliza i pentru a determina valoarea lui f urmrind suma produselor variabilelor pentru care funcia este fals:
f = A B C + A B C + A B C + A B C + A B C

Exemplu: Se consider o funcie logic cu trei intrri, A, B, C, i trei ieiri D, E i F cu urmtoarea definiie: D este adevrat dac cel puin o intrare este adevrat, E este adevrat doar dac exact dou intrri sunt adevrate, iar F este adevrat dac toate cele trei intrri sunt adevrate. Tabelul de adevr i ecuaiile logice pentru funcia descris sunt prezentate mai jos. Tabel 5. Tabelul de adevr pentru funcia descris n exemplul de mai sus. Intrri B 0 0 1 1 0 0 1 1 Ieiri E 0 0 0 1 0 1 1 0

A 0 0 0 0 1 1 1 1

C 0 1 0 1 0 1 0 1

D 0 1 1 1 1 1 1 1

F 0 0 0 0 0 0 0 1

Ecuaiile logice: Ecuaia pentru D este: D=A+B+C Ecuaia pentru F este: F=ABC Ecuaia pentru E este mai complicat i trebuie s ne gndim la E n dou moduri: ce trebuie s fie adevrat pentru ca E s fie adevrat (dou din trei intrri trebuie s fie adevrate) i ce nu poate s fie adevrat ( nu pot s fie adevrate toate trei).

20

Arhitectura sistemelor de calcul

Prin urmare E poate fi scris ca: E = (( A B ) + ( A C ) + (B C )) ABC O alt modalitate de a obine ecuaia lui E rezult observnd c E este adevrat numai dac exact numai dou dintre intrri sunt adevrate. n acest caz E poate fi scris ca un SAU al celor trei termeni posibili care au dou intrri adevrate i o intrare fals: E = A B C + AC B + B C A Demonstrarea echivalenei celor dou ecuaii se face aplicnd legile algebrei booleene.

) (

) (

Exemplu: Un alt circuit logic simplu este funcia logic majoritar M = f ( A, B, C ), f : {0,1}3 {0,1}, care ia valoarea 1 dac majoritatea valorilor A, B C, sunt 1 i valoarea 0 altfel.

(a)

(b)

ABC A B C Figura 2.16 Tabela de adevr (a) pentru funcia majoritar precum i circuitul logic (b). Test de autoevaluare No. 4 S se implementeze funcia SAU EXCLUSIV f = A B utiliznd: 1. numai pori I-NU cu dou intrri; 2. numai pori SAU-NU cu dou intrri. Multiplexoare (MUX). Un multiplexor este un circuit logic care conine 2n intrri de date, o ieire de date i n intrri de control. Pentru a nelege mai bine ce este un multiplexor este prezentat urmtoarea figur:

21

Arhitectura sistemelor de calcul

Figura 2.17 Circuit de multiplexare (8 intrri, o ieire i 3 linii de control). De exemplu, dac A=B=C=1 i D7=1, atunci D7 v-a fi condus ctre ieirea F. Acest circuit poate implementa funcia majoritate astfel: fiecare intrare este legat fie la 1 logic fie la 0 logic astfel nct intrarea Di corespunde valorii funciei M din tabela de adevr a funciei majoritare. Avem, deci, liniile D0, D1, D2, D4 cu valoarea 0 i cele rmase avnd valoarea 1. Putem implementa circuitul logic ntrunul fizic dac vom lega liniile care au valoarea 0 logic la mas, i liniile rmase la 1 logic (1Vcc (curent continuu)). Astfel rezult un circuit integrat ca figura urmtoare:
1 volt curent continuu

0 volti (masa)

Figura 2.18 (a) multiplexor (b) multiplexor construit pentru a calcula funcia majoritate. d Vom nota simbolic un multiplexor prin: Semnificaie:(dac d==0, c=a; altfel c=b). a b c

Decodificatoare. Un circuit care preia un numr cu n bii la intrare i l folosete n selectarea uneia dintre cele 2n linii de ieire se numete decodificator. n figura de mai jos este reprezentat un asemenea circuit cu 3 intrri ( A, B i C) si 8 linii de ieire D0 D7). Un decodificator se folosete pentru selectarea dintr-un circuit digital a unei operaii. De exemplu pentru selectarea uneia dintre operaiile logice sau aritmetice dintr-un ALU (Arithmetic Logic Unit).

22

Arhitectura sistemelor de calcul

Figura 2.19 Decodificator. Test de autoevaluare No. 5 Ce valori constante trebuie s ia C0-C3 pentru ca circuitul logic urmtor s fie XOR pentru intrrile a i b ?

a) b) c) d)

C0 = 0, C1 = 1, C2 = 1, C3 = 0 C0 = 0, C1 = 0, C2 = 1, C3 = 0 C0 = 1, C1 = 1, C2 = 1, C3 = 0 C0 = 0, C1 = 1, C2 = 1, C3 = 1

1.8

Unitatea Aritmetico-Logic (Arithmetic&Logic unit (ALU)

Unitatea aritmetico-logic a unui procesor este un circuit digital care rezolv operaiile logice i aritmetice i este localizat n interiorul procesorului. Aa cum

23

Arhitectura sistemelor de calcul

se va vedea n continuare, un procesor rezolv toate operaiile aritmetice pe baza operaiilor logice. n general procesoarele conin un singur circuit care rezolv operaiile AND, OR i de nsumare a dou cuvinte main. Un asemenea circuit construit pentru cuvinte de n bii este compus din n circuite identice pentru poziiile de bit individuale.

Figura 2.20 Simbolul pentru un ALU. A i B reprezint datele de intrare n ALU (luate din registrele microprocesorului), R este rezultatul, F este operandul (instruciunea) care este dat de Unitatea de Control (Control Unit), aplicat datelor de intrare, D reprezint Starea de ieire (output status). n continuare se va construi un ALU utiliznd numai cele trei pori logice de baz: NOT, AND i OR. n figura 2.21 este prezentat unitatea logic de 1 bit pentru AND i OR. Multiplexorul selecteaz n cazul acesta operaiile a AND b sau a OR b, dup cum valoarea operaie este 0 sau 1. De notat c operaie este o comand digital dat circuitului respectiv.
operaie

a 0
rezultat

Figura 2.21 Unitatea logic de 1 bit pentru AND i OR. Urmtoarea operaie este adunarea pe un bit. Circuitul care realizeaz operaia de adunare se numete sumator. Un sumator pe un bit trebuie s conin trei intrri (dou intrri pentru operanzi i una pentru intrarea transportului (carry in) de la sumatorul precedent) i dou ieiri (una reprezentnd suma iar cealalt transportul (carry out) ctre sumatorul urmtor). Figura urmtoare reprezint simbolul folosit pentru un sumator de 1 bit precum i specificaiile de intrare i ieire.

24

Arhitectura sistemelor de calcul

CarryIn

a Sum b

CarryOut

Figura 2.22 Sumator pe un bit. Tabel 6. Tabelul de adevr pentru sumatorul pe un bit. Intrri b
0 0 1 1 0 0 1 1

a
0 0 0 0 1 1 1 1

CarryIn
0 1 0 1 0 1 0 1

Ieiri CarryOut Sum


0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1

Comentarii
0+0+0=002 0+0+1=012 0+1+0=012 0+1+1=102 1+0+0=012 1+0+1=102 1+1+0=102 1+1+1=112

Funciile de ieire CarryOut i Sum pot fi reprezentate prin ecuaiile logice: CarryOut=(b*CarryIn)+(a*CarryIn)+(a*b)+(a*b*CarryIn)=(b*CarryIn)+(a *CarryIn)+(a*b). Prin urmare, circuitul pentru CarryOut const din trei pori logice AND i o poart logic OR:

Figura 2.23 Circuitul logic pentru CarryOut. Pentru deducerea ecuaiei logice a sumei se observ c suma este 1 cnd numai una din intrri este 1 sau cnd toate cele trei intrri sunt 1. Deci: suma = a b CarryIn + a b CarryIn + a b CarryIn + (a b CarryIn )

) (

) (

25

Arhitectura sistemelor de calcul

Figura 2.24 Circuitul pentru calculul sumei pe 1 bit. Un semisumator (half adder) realizeaz suma, a doi bii A i B, genernd transportul (CarryOut).

Figura 2.25 Tabela de adevr i circuitul pentru semisumatorul pe un bit.

Un sumator complet (eng. Full Adder) este proiectat s in cont i de semnalul de transport CarryIn ce provine de la un bit mai puin semnificativ. Se obine astfel un circuit cu trei intrri: cei doi bii de semnal A i B i bitul de transport C de la un ordin inferior. La ieirea circuitului se va genera suma i semnalul de transport CarryOut spre bitul urmtor din numrul binar.

(c)

Figura 2.26 Tabela de adevr pentru sumatorul complet (a), circuitul pentru sumatorul complet (b) i simbolul schematic (a).

26

Arhitectura sistemelor de calcul

Test de autoevaluare No. 6 1. S se determine ecuaia urmtorului circuit logic

a) b) c) d)

(b CarryIn)+(a CarryIn)+(a b) NOT(b CarryIn)+(a CarryIn)+(a b) (b CarryIn)+(a CarryIn)+NOT(a b) (b CarryIn)+NOT(a CarryIn)+(a b)

Un circuit de tip adunare-scdere (adder-subtractor) se bazeaz pe reprezentarea n complement fa de 2 (se obine negativul unui numr binar inversnd biii i adunnd 1). Folosind proprietile se poate folosi poarta logic XOR pentru a face selecia ntre i . Cu ajutorul acestor proprieti se construiete urmtorul circuit de tip adunare-scdere:

Figura 2.27 Circuit de tip adunare-scdere. Cum funcioneaz: dac intrarea sub este 0, intrarea b nu este inversat i carry in c0 este 0. n acest caz circuitul calculeaz s=a+b+0. n cazul n care intrarea sub este 1 intrarea b este inversat, carry in c0 este 1 iar circuitul calculeaz care este a-b, adic scderea. Circuitul simplu ALU din figura 2.28 poate calcula patru funcii, condiionate de liniile de comand F0 i F1, astfel: F0=0, F1=0 => A AND B F0=0, F1=1 => A OR B F0=1, F1=0 => F0=1, F1=1 => A + B

27

Arhitectura sistemelor de calcul

Figura 2.28 Un circuit ALU pe 1 bit. Decodificatorul pe 2 bii din colul din stnga jos genereaz semnalele de activare a celor patru operaii n funcie de comenzile date prin liniile F0 i F1. Unitatea logica a ALU (situat n colul din stnga sus al figurii 2.28) poate calcula A AND B, A OR B i , n funcie de comenzile care vin de la decodificator. ENA (enable A) i ENB (enable B) au valorile implicite 1, ceea ce nseamn c ambele intrri sunt active. Se poate obine prin setarea lui INVA cu 1, implicit INVA este 0. Colul din dreapta jos conine un sumator complet.
CarryIn Operation

a0 b0

CarryIn ALU0 CarryOut Result0

a1 b1

CarryIn ALU1 CarryOut Result1

a2 b2

CarryIn ALU2 CarryOut Result2

a31 b31

CarryIn ALU31 Result31

Figura 2.29 Pentru a obine un ALU pe 32 de bii se vor conecta 32 de uniti ALU pe un bit.

28

Arhitectura sistemelor de calcul

1.9

Rspunsuri la testele de autoevaluare

Testul no. 4 Rezolvare: 1. Funcia se transform cu ajutorul teoremei lui De Morgan:

f = A B = A B + A B = A B A B . Se obine urmtoarea implementare :


A

A B A B A B = f

B
A B

2. Funcia se transform cu ajutorul teoremei lui De Morgan: f = A B = A B + A B = A + B + A + B . Se obine urmtoarea implementare:


A

A+ B A+ B+ A+ B
f

A+ B Testul no. 5 a. C0 = 0, C1 = 1, C2 = 1, C3 = 0 Testul no. 6 a. (b CarryIn)+(a CarryIn)+(a b) 1.10 Lucrare de verificare Nr.2 1. S se determine ecuaia urmtorului circuit logic

29

Arhitectura sistemelor de calcul

suma

) ( ) ( ( ) ( ) b. suma = (a b CarryIn ) + (a b CarryIn ) + (a b CarryIn ) + (a b CarryIn ) c. suma = (a b CarryIn ) + (a b CarryIn ) + (a b CarryIn ) + (a b CarryIn ) d. suma = (a b CarryIn ) + (a b CarryIn ) + (a b CarryIn ) + (a b CarryIn )
a.
suma = a b CarryIn + a b CarryIn + a b CarryIn + a b CarryIn

2. S se stabileasc care dintre urmtoarele afirmaii referitoare la un sumator pe 1 bit sunt adevrate: 1. 2. 3. 4. a=1 i a=0 i a=1 i a=1 i b=1 i CarryIn=1 CarryOut=1 i Sum=1 b=0 i CarryIn=0 CarryOut=0 i Sum=1 b=1 i CarryIn=0 CarryOut=1 i Sum=1 b=0 i CarryIn=1 CarryOut=1 i Sum=1.

3. Pentru ce numere un ALU pe 32 de bii are CarryOut=1 i Suma=0 pentru fiecare ALU de 1 bit ? 1. 2. 3. 4. FFFFFFFFh i 00000001h 1FFFFFFFh i 11111111h FFFFFFFFh i FFFFFFFFh 11111111h i 00000000h.

4. Pentru ca un C.I. s conin ct mai puine tranzistoare este indicat s se foloseasc urmtoarele pori logice: a) b) c) d) NOT, NAND i NOR AND, OR i NOT NOT, XOR i AND XOR, NOT i OR

5. Pentru ce numere un ALU pe 32 de bii are CarryOut=1 i Suma alternnd ncepnd cu 0 pentru fiecare ALU de 1 bit ? a) b) c) d) AAAAAAAAh i FFFFFFFFh 0FFFFFFAh i 1A111111h 0F0F0F0Fh i FFFFFFFFh AAAAAAAAh i 01010101h.

6. Cele 4 blocuri hardware constitutive folosite pentru construirea unei ALU sunt:

30

Arhitectura sistemelor de calcul

a) b) c) d)

poarta SAU, poarta I, inversorul i multiplexorul poarta SAU, poarta I, inversorul i decodificatorul poarta I, inversorul, multiplexorul i decodificatorul poarta SAU, poarta XOR, multiplexorul i decodificatorul

7. Ecuaiile circuitului logic de mai jos sunt:

P = A A B B 8 2 1 2 1

P8 = A2 A1 B 2 B1

a.

P =A B B +A A B 4 2 2 1 2 1 2 P =A B B +A A B +A B B +A A B 2 2 2 1 2 1 1 1 2 1 2 1 2 P = A B 1 1 1
P8 = A2 A1 B 2 B1

b.

P4 = A2 B 2 B1 + A2 A1 B 2 P2 = A2 B 2 B1 + A2 A1 B 1 + A1 B 2 B1 + A2 A1 B 2 P 1 = A1 B1

P8 = A2 A1 B 2 B1

c.

P4 = A2 B 2 B1 + A2 A1 B 2 P2 = A2 B 2 B1 + A2 A1 B1 + A1 B 2 B1 + A2 A1 B 2 P 1 = A1 B1

d.

P4 = A2 B 2 B1 + A2 A1 B 2 P2 = A2 B 2 B1 + A2 A1 B1 + A1 B 2 B1 + A2 A1 B 2 P 1 = A1 B1

8. S se demonstreze c: A ( A + B) = A R: A ( A + B) = A A + A B = A + A B = A (1 + B) = A 1 = A 9. S se demonstreze c: A B C + A B C + A B C = A ( B + C ) R: A B C + A B C + A B C = A ( B C + B C + B C ) =
= A (C ( B + B) + B C ) = A (C + B C ) = A (C + B) (C + C ) = A ( B + C )

10. S se exprime cu ajutorul funciilor I i NEGAIE funcia:


f = A + B (C + D) + ( A + B) (C + D)

R: f = A + B C + B D + A C + A D + B C + B D
= A + B (C + C ) + B ( D + D) + A C + A D =
= A (1 + C + D) + B + B = A + B = A B

11. S se scrie tabelul de adevr i circuitul logic pentru funcia de patru variabile:
f ( A, B, C , D) = A B + B C + A D

31

Arhitectura sistemelor de calcul

12. S se implementeze funciile: a) f = A B C utiliznd pori I-NU cu 2 intrri; b) f = A B + A C + B C b1) cu pori I-NU cu 2 intrri; b2) cu pori I-NU cu oricte intrri; c) f = A C + A B + B D + C D c1) cu pori I-NU cu 2 intrri; c2) cu pori SAU-NU cu 2 intrri; d) f = B (A + C ) + C D d1) cu pori I-NU cu 2 intrri. d2) cu cele mai potrivite pori 1.11 Microprocesorul. Structura general a microprocesorului Un calculator este un sistem format prin interconectarea de procesoare, memorii i dispozitive de intrare/ieire, care prelucreaz date conform unui set de instruciuni (program). Calculatoarele au la baz arhitectura mainii von Neumann. Aceasta a fost folosit n proiectarea Electronic Delay Storage Automatic Calculator (EDSAC), primul calculator cu program memorat, i reprezint n continuare baza pentru cele mai multe calculatoare din prezent. Schia arhitecturii este prezentat n figura urmtoare:

Figura 3.1 Maina von Neumann iniial Lucrrile lui John Von Neumann au stat la baza proiectrii calculatoarelor digitale ncepnd cu anii 50. Calculatoarele de astzi funcioneaz n principiu dup arhitectural calculatorului digital imaginat n anii 40 de matematicianul John von Neumann. n viziunea lui Neumann un calculator era alctuit din cinci pri: un dispozitiv de intrare responsabil cu introducerea date n calculator; zon de memorie pentru stocarea datelor i programelor; unitate aritmetic pentru efectuarea calculelor; unitate de control care s realizeze transferul instruciunilor i datelor ntre memorie i unitatea aritmetic; un dispozitiv de ieire. Memoria era format din 4096 de cuvinte, un cuvnt avnd 40 de bii, fiecare cu valoarea 0 sau 1. Fiecare cuvnt stoca fie dou instruciuni pe 20 de bii fie un ntreg cu semn pe 40 de bii. Instruciunile aveau 8 bii care indicau tipul instruciunii i 12 bii ce specificau unul dintre 4096 cuvinte de memorie. n

32

Arhitectura sistemelor de calcul

interiorul unitii aritmetice i logice exista un registru intern special de 40 de bii, numit acumulator. O instruciune tipic aduna un cuvnt de memorie la acumulator sau memora coninutul cuvntului n memorie. Microprocesorul numit i unitate central de prelucrare (eng. CPU Central Processing Unit), este responsabil cu recunoaterea i procesarea instruciunilor care constituie software-ul calculatorului. CPU recunoate i execut un set specific de instruciuni, furnizate din exteriorul su, sub form binar. Organizarea intern a unei pri dintr-o CPU von Neumann tipic este prezentat n figura de mai jos. Aceast parte se numete cale de date (data path) i include registre (de obicei ntre 1 i 32), unitatea aritmetic i logic i mai multe magistrale de legtur. Datele sunt trimise n cele dou registre de intrare ale ALU, notate n figur cu A i B. Aceste registre pstreaz datele de intrare ale ALU n timp ce aceasta calculeaz.

Registre

Registru de intrare Magistrale interne

Registru de ieire

Figura 3.2 Calea de date a unei maini von Neumann tipice. ALU execut asupra datelor sale de intrare adunri, scderi i alte operaii simple, al cror rezultat este depus n registrul de ieire. Coninutul registrului de ieire poate fi memorat ntr-unul din registrele de intrare. Mai trziu, dac se dorete, registrul poate fi scris (adic depozitat) n memoria RAM. Nu toate variantele dispun de registrele A, B i de ieire. n exemplul dat este ilustrat adunarea. Reamintim c instruciunile care se execut sunt n cod main, adic iruri de bii. Cele cinci componente clasice din care este alctuit un calculator sunt: intrarea, ieirea, memoria, calea de date i controlul, ultimele dou fiind combinate hardware i numite procesor.

33

Arhitectura sistemelor de calcul

Procesorul este partea activ a unui calculator care execut instruciunile unui program. Procesorul presupune dou componente principale: calea de date i controlul, muchii i respectiv creierul procesorului. Controlul (unitatea de control) aduce instruciunile din memoria principal i precizeaz (prin semnale de control) cii de date, memoriei i dispozitivelor de I/O ce trebuie s fac, n conformitate cu instruciunile programului. Unitatea de control asigur sincronizarea aciunilor unitilor funcionale interne CPU i sincronizarea operaiilor UC (i implicit a CPU) cu dispozitivele externe CPU. Calea de date este un ansamblu de uniti funcionale capabile s prelucreze datele. Calea de date conine registrele de uz general, uniti funcionale cum sunt ALU-urile i circuite de deplasare a biilor, precum i cile de comunicare dintre acestea (magistrale interne ale CPU). Bucla principal de execuie const n citirea unor operanzi din registre i trimiterea lor prin magistrale la ALU i alte uniti funcionale pentru execuie, dup care rezultatele sunt depuse n registre. Procesul (bucla principal de execuie) prin care cei doi operanzi sunt trecui prin UAL i alte uniti funcionale pentru execuie dup care rezultatul este depozitat n registre se numete ciclul cii de date (data path cycle) i reprezint inima procesorului. Viteza unui procesor este dat, n principal, de viteza ciclului cii de date.
Computer

Cele cinci componente clasice din care este alctuit un calculator sunt: intrarea, ieirea, memoria, calea de date i controlul, ultimele dou fiind combinate hardware i numite procesor.

Intrare

Memoria RAM

Control Ieire Calea de date PROCESOR

Figura 3.3 Cele cinci componente clasice de baz ale unui calculator.

34

Arhitectura sistemelor de calcul

PROCESOR

UAL

R1 R2 R3
Controler de memorie Controler de disc Controler de imprimant

unitate de comand

Rn-1 PC

BUS

Figura 3.4 Structura general a unui calculator, unde R1,,Rn-1 sunt registrele microprocesorului. Tem de reflecie Determinai evoluia calculatoarelor prin prisma generaiilor microprocesoare. Scriei rspunsul n spaiul liber din chenar. de

1.12 Generatorul de ceas oscilatorul Deoarece ntr-un calculator programele sunt executate secvenial sau paralel (n cazul sistemelor multiprocesor), ordinea n care se petrec evenimentele este critic. Astfel, unele evenimente se petrec secvenial altele trebuie sa aib loc simultan. n acest sens circuitele digitale folosesc ceasuri pentru execuia sincronizat a operaiilor din interiorul CPU-ului i respectiv exteriorul acestuia (transferuri ntre dispozitivele externe CPU conectate prin magistralele externe). Viteza de lucru a unui procesor este dat de frecvena ceasului exprimat de obicei n perioade (cicluri) pe secund. Aceasta frecvena este controlat de un oscilator cu cristal. Oscilatorul este compus dintr-o lamel de cuar montat ntr-un mic container de metal. Cristalul de cuar este una din formele de cristalizare ale bioxidului de siliciu (SiO2), care este un material solid, anizotrop, monocristalin. Cnd se aplica o tensiune cuarului acesta ncepe s vibreze (oscileze) pe o armonic determinat de forma i mrimea lui. Cuarul (materialele mono sau policristaline) supuse unei aciunii mecanice genereaz o tensiune electric. Acest fenomen este numit efectul piezoelectric direct. Cuarul (materialele mono sau policristaline) sub aciunea unui cmp electric sufer o deformare mecanic (distorsiune mecanic numit electrostriciune). Acest fenomen este numit efectul piezoelectric indirect.

35

Arhitectura sistemelor de calcul

Efectul piezoelectric indirect longitudinal corespunde unei aciuni de ntindere (pe axa OY) a cristalului de cuar, atunci cnd apar sarcini electrice negative pe suprafaa superioar i sarcini electrice pozitive pe suprafaa inferioar a cuarului. Similar este efectul piezoelectric indirect transversal (pe axa OX), care prin schimbarea polaritii sarcinilor electrice aplicate, determin alungirea cristalului de cuar. Alternarea polaritii sarcinilor electrice aplicate pe suprafaa superioar i respectiv pe suprafaa inferioar a cuarului, determin comprimri i destinderi ale acestuia genernd vibraia electromecanic.

Figura 3.5 Cristalizarea i efectul piezoelectric la cristalul de cuar. Efectul piezoelectric longitudinal, respectiv transversal. Tipul de vibraie electromecanic depinde de forma lamelei de cuar supus aciunii cmpului electric oscilant. Frecvenele de oscilaie (vibraie) sunt strict determinate de forma tieturii lamelei din cristalul de cuar, dimensiunile acesteia i poziia electrozilor de contact ataai acesteia. Oscilaiile sunt emise sub forma unor pulsuri consecutive cu frecvena dat de armonica cristalului. Intervalul de timp ntre fronturile corespunztoare a dou pulsuri consecutive este cunoscut sub numele de durat de ciclu (clock cycle time), semnal de ceas sau semnal de tact sau ciclu procesor. Un calculator lucreaz la frecvena de milioana de cicluri pe secund i deci msurm viteza n Mhz (1 Mhz= 106 Hz). Un hertz este egal cu un ciclu pe secund i reprezint cea mai mic unitate de timp a procesorului. n general orice operaie (eveniment) are nevoie de cel puin un ciclu. Aa cum reiese din figura urmtoare, perioada ceasului (ciclul) se mparte n dou poriuni: cnd semnalul de ceas este de nivel nalt (H-high) cnd semnalul de ceas este de nivel sczut (L-low)
Perioad de ceas (T)

Front cresctor

Front descresctor Figura 3.6 Diagrama de timp a semnalului de ceas.

t (timp)

36

Arhitectura sistemelor de calcul

Tranziia semnalului de ceas de la valoarea 0 la valoarea 1 genereaz un front cresctor iar cnd semnalul de ceas face o tranziie de la 1 la 0 este generat un front descresctor. Aa cum se observ din diagrama de timp a semnalului de ceas, perioada semnalului de ceas este intervalul de timp dintre dou fronturi cresctoare sau descresctoare succesive. Semnalul de ceas se spune c este activ pe frontul cresctor dac starea circuitului combinaional se schimb pe frontul cresctor; dac starea circuitului se schimb pe frontul descresctor, semnalul de ceas este activ pe frontul descresctor. Toate schimbrile de stare se produc pe un front de ceas. Aceast metod se numete: acionarea pe frontul ceasului. n general coninutul elementului de stare se modific numai pe frontul de ceas activ. Un element de stare este un element care memoreaz stri ex: memoriile de instruciuni i date (registrele). O condiie important este ca valoarea nscris n elementele de stare s fie valid la apariia frontului de ceas activ. Valoarea unui element de stare este valid atunci cnd nu se mai modific, adic este stabil pn la modificarea intrrilor. n teorie se presupune c toate porile logice sunt ideale, n sensul c ieirea apare instantaneu cu activarea intrrii. n realitate circuitele integrate au o ntrziere de poart (gate delay) limitat, care include suma timpilor de propagare a semnalului prin toate porile logice activate. Aceste ntrzieri sunt ntre 0,5-10 ns. Pentru a fi siguri c toate elementele de stare ale unui circuit sunt active, ceasul trebuie s aib o perioad de ceas suficient de lung. Prin urmare trebuie stabilit o limit inferioar a lungimi perioadei de ceas.
Element de stare 1 Logic combinaional Element de stare 2 (memorie)

(memori

Figura 3.7 Timpul necesar semnalelor pentru a ajunge de la elementul de stare 1 la elementul de stare 2 definete durata ciclului de ceas. Test de autoevaluare No. 7 1. Dac un circuit logic are ntrzierea total de poart de 0,5ns, s se determine dac poate fi folosit pentru : a) fabricarea procesoarelor pn la 2 Ghz b) fabricarea procesoarelor de mai mari de 5 Ghz c) fabricarea procesoarelor de 8 Ghz.

37

Arhitectura sistemelor de calcul

1.13 Structura i programarea microprocesorului 8086 De ce se studiaz microprocesorul 8086 i nu ultima generaie de microprocesoare Intel? Pentru c scopul cursului este de a prezenta elementele de baz ale programrii unui microprocesor. Procesorul 8086 reprezint un material didactic mult mai uor de aprofundat i reprezint baza arhitecturilor 80x86.

Figura 3.8 Structura general procesorului 8086. Registrele microprocesorului (Register Array) reprezint locaii de memorie localizate n interiorul procesorului. Acest tip de memorie este de capacitate mic i lucreaz la o frecven egal cu frecvena microprocesorului. Registrele sunt utilizate pentru stocarea datelor, instruciunilor n cod main i a altor valori care trebuie accesate cu vitez foarte mare n timpul execuiei programelor. Anumite registre sunt comune multor familii de microprocesoare. Fiecare dintre acestea au funcii specifice bine definite. Registrele de capacitate 16 bii ale microprocesorului Intel 8086 pot fi clasificate din punct de vedere al rolului pe care l au n 3 grupuri: registre de uz general (General Purpose Registers): AX, BX, CX, DX, SP, BP; SI, DI; registrele segment (Segment Registers): DS, ES, CS, SS; registrele de control (Control Registers): IP, SP (apare i la indicatoare de adres) i Flags.

38

Arhitectura sistemelor de calcul

15 data

14

13

12

11 AH BH CH DH

10

4 3 AL BL CL DL

0 AX - accumulator BX Base-Index CX - Count DX - Data Source Index Destination Index Stack pointer Base pointer Data Segment Extra Segment Code Segment Stack Segment Instruction pointer

index

SI DI SP BP DS ES CS SS IP OF DF IF TF SF ZF AF PF CF

pointer

segment

Flags

Figura 3.9 Registrele microprocesorul 8086. Registre de uz general. Microprocesorul 8086 are 8 registre generale de 16 bii grupate astfel: registrele de date, index i pointer, Figura 3. 9. Registre de date AX (Accumulator Register) este registrul acumulator i este principalul registru aritmetic, n el fcndu-se majoritatea calculelor aritmetice i logice. BX (Base Index Address Register) este folosit i la memorarea adreselor offset (accesarea indirect a memoriei). CX (Count Register) joac rol de contor n bucle, adic contorizeaz numrul de iteraii a unei instruciuni de ciclare LOOP sau specific numrul de caractere dintr-un ir. DX (Data Register) are dou ntrebuinri speciale: se folosete la mprire i nmulire i mpreun cu AX conine produsul, respectiv dempritul pe 16 de bii i se mai folosete la memorarea adreselor de I/O atunci cnd se acceseaz date de pe magistrala de I/O. Registre index SI i DI (Source Index i Destination Index) sunt folosii la fel ca registrul BX pentru accesarea indirect a memoriei i mai sunt folosii mpreun la prelucrarea irurilor, cu SI specificnd adresa curent a irului surs i DI adresa curent a irului destinaie. Registre pointer (indicatoare de adres) SP (Stack Pointer) indicator de stiv, conine adresa curenta a vrfului stivei programului n curs de execuie. Acest registru nu trebuie ntrebuinat n alte scopuri. BP (Base Pointer) este indicator de baz n cadrul local de stiv adic este folosit pentru accesarea parametrilor i a variabilelor locale dintr-o procedur. Implicit conine adresa de baz pentru adresarea indirect a stivei.

39

Arhitectura sistemelor de calcul

Registrele AX, BX, CX, DX pot fi folosite i la jumtate din capacitate, adic pot fi mprii n cte dou registre de cte 8 bii: AH, Al, BH, BL, CH, CL, DH, DL (H High byte, L Low byte). Fiecare registru general are o funcie specific, dar oricare din ele pot fi folosite i la operaii aritmetice sau logice, adresare memoriei sau ca i variabile. Registre de segment Spaiul fizic de memorie al microprocesorului 8086 de 1 Mb direct adresabil, este divizat n segmente logice de pn la 64 kb fiecare. CPU are acces direct n orice moment la patru segmente logice ale cror adrese de baz (adresele de nceput ale segmentelor) sunt memorate n registrele de segment. CS (Cod Segment) este registru segment de program i conine adresa nceputului blocului (segmentului) de memorie ce conine programul principal (din care sunt extrase instruciunile). DS (Data Segment) registru segment de date i conine adresa variabilelor globale ale programului (adresa de baz a segmentului de date). ES (Extra Segment) registru segment suplimentar de date i este folosit n cazul n care nu se pot modifica celelalte registre. SS (Stack Segment) registru segment de stiv i conine adresa de baz (nceput) a stivei. Stiva este o parte din memorie n care procesorul memoreaz adresa de ntoarcere dintr-o procedur (subrutin), parametrii procedurilor i variabile locale. Atenie ! Nu este indicat s se modifice la ntmplare coninutul registrelor de segment deoarece acestea conin adresele segmentelor de memorie folosite n program. Registre speciale. Exist dou registre speciale: IP (Instruction Pointer) conine componenta offset a adresei instruciunii curente. Registrul IP lucreaz ntotdeauna mpreun cu registrul de segment CS pentru a indica adresa instruciunii curente. Astfel, pentru a aduce o instruciune din memorie, registrul CS ofer o adres de baz iar registrul pointer de instruciune indic adresa de deplasament plecnd de la aceast adres de baz. Registrul fanion (Flags Register) are 16 bii i este un colector de informaii de un bit ce reprezint strile procesorului. La descrierea instruciunilor microprocesorului se va specifica la fiecare instruciune care bit este afectat i n ce mod. Principalele operaii realizate de Unitatea Aritmetic i Logic ( Arithmetic & Logic Unit - ALU) ) sunt: operaii aritmetice i logice, comparaii ntre dou numere, deplasare de bii, pe cuvinte de memorie de n bii. n general valoarea lui n este egal cu numrul de bii ai magistralei interne de date a procesorului. Exist i excepii de la aceast regul. furnizeaz indicaii privind rezultatul operaiilor efectuate, prin intermediul unor valori binare numite indicatori de condiii (flags).

40

Arhitectura sistemelor de calcul

Pentru rezolvarea acestor operaii, ALU lucreaz n conjuncie cu registrele microprocesorului (register array), n particular, cu registrul acumulator i registrul de stare i control (Flags register). Registrul acumulator conine rezultatul operaiilor iar registrul indicatorilor de condiie conine un numr de bii individuali utilizai pentru a memora informaii referitoare la rezultatul unor operaii aritmetice sau logice (AF, CF, OF, PF, SF, ZF) i pentru memorarea unor informaii de control pentru microprocesor (DF, IF, TF). Din cei 16 bii, numai 9 bii, au o semnificaie: 3 bii de control i 6 bii de stare. 15 X X X X OF DF IF 8 TF 7 SF ZF X AF X PF X 0 CF

Figura 3.10 Registrul de stare i control (Flags register). AF (Auxiliar Carry Flag) indicatorul ia valoarea 1 logic dac n execuia unei instruciuni a aprut un transfer de la semioctetul inferior la semioctetul superior al rezultatului: un transport dinspre bitul 7 spre bitul 8 sau un mprumut dinspre bitul 8 ctre bitul 7. n cazul reprezentrii pe un octet, indicatorul ia valoarea 1 atunci cnd a aprut un transfer de la low nibble la high nibble al rezultatului: un transport dinspre bitul 3 spre bitul 4 sau un mprumut dinspre bitul 4 ctre bitul 3 (unsigned overflow for low nibble ). Acest indicator este folosit n aritmetica zecimal. CF (Carry Flag) acest indicator este setat pe 1 atunci cnd exist o depire fr semn (unsigned overflow) a capacitii de reprezentare; rezultatul unei instruciuni aritmetice fr semn depete dimensiunea locaiei de destinaie. De exemplu, atunci cnd se adun, n binar, 255+1 (rezultatul nu este n intervalul 0...255). Atunci cnd nu exist depire indicatorul este setat pe 0. Acest indicator este utilizat de instruciunile ce implic operaii de adunare sau scdere cu numere fr semn reprezentate pe unul sau mai muli octei. Indicatorului i se poate schimba valoarea de ctre unele instruciuni (exemplu: instruciunile de rotire, deplasare de bii). OF (Overflow Flag) indic depirea capacitii de reprezentare a locaiei de destinaie (pierderea unui bit) a rezultatului generat n urma unei instruciuni aritmetice cu semn. Este de remarcat faptul c exist o instruciune (INTerrupt On Overflow) care genereaz o cerere de ntrerupere pentru semnalarea apariiei acestei situaii. SF (Sign Flag) indicatorul de semn ia valoarea 1 logic dac rezultatul unei operaii cu numere cu semn este un numr negativ. Dac se lucreaz cu numere fr semn, indicatorul va copia valoarea logic a celui mai semnificativ bit (MSB) al rezultatului (caz n care nu mai are interpretarea de indicator de semn). PF (Parity Flag) are valoarea 1 logic dac rezultatul conine un numr par de bii cu valoarea 1 logic. Dac numrul este impar, atunci PF=0. Poate fi utilizat pentru verificarea erorilor de transmisie a datelor. ZF (Zero Flag) acest indicator ia valoarea 1 logic dac toi biii rezultatului unei operaii aritmetice sau logice sunt zero; altfel ZF = 0.

41

Arhitectura sistemelor de calcul

DF (Direction Flag) aceast informaie de control este utilizat n operaiile cu iruri. Valoarea lui DF indic direcia de parcurgere a irurilor. irul este definit prin dou elemente: adresa de baz i index (indice), care definesc fiecare element din ir fa de o adresa de baz. irul este parcurs n sensul descresctor dac (DF=1) sau cresctor dac (DF=0) al adreselor index. IF (Interrupt enable Flag) atunci cnd indicatorul este setat pe valoarea 1 logic, permite CPU s recunoasc cererile de ntrerupere mascabile (aplicate pe pinul INTerrupt Request- INTR) ale dispozitivelor externe. Indicatorul poate fi poziionat pe 1 sau ters prin instruciuni ale programului. Dac IF = 0, atunci ntreruperile semnalate vor fi mascate (inactive), iar CPU ignor ntreruperea i execut instruciunea urmtoare a programului active. Modificarea valorii lui IF nu are efect asupra ntreruperilor generate intern n CPU sau a celor externe nemascabile (aplicate pe pinul Non Maskable Interrupt - NMI). TF (Trap flag (single step)) permite controlul execuiei instruciunilor unui program, n regim pas cu pas n scopul depanrii programelor. Dac TF=1, CPU genereaz automat o ntrerupere intern dup fiecare instruciune, permind astfel analiza strii interne a procesorului. Acest indicator este folosit de programele depanatoare (Debugger). In unele cazuri programele folosesc acest indicator pentru prevenirea spargerii acestora de ctre hackeri.

Tem de reflecie Facei o comparaie cu microprocesoarele de tip RISC. Scrie i rspunsul n spaiul liber din chenar.

1.14 Execuia instruciunilor cod main Totalitatea instruciunilor care pot fi recunoscute si executate direct de un procesor se numesc instruciuni n cod main, i formeaz setul de instruciuni sau limbajul main (machine language) al microprocesorului respectiv. O instruciune este compus, n general, dintr-un cuvnt (32 sau 64 de bii) de cod care specific aciunea instruciunii, i operanzii (datele) cu care lucreaz instruciunea. De exemplu, n urmtoarele instruciuni Z80, sunt specificate clar aceste lucruri:

LD A, 55H

-- 3EH 55H
COD DATA instruciune

LD DE, 6AF5H 11H F5H 6AH


COD DATA

instruciune

42

Arhitectura sistemelor de calcul

UCP execut fiecare instruciune printr-o serie de pai : 1. Transfer instruciunea urmtoare din memorie n registrul de instruciuni; 2. Schimb contorul de program astfel nct s indice urmtoarea instruciune; 3. Determin tipul instruciunii proaspt extrase; 4. Dac instruciunea are nevoie de un cuvnt din memorie, determin unde se gsete acesta; 5. Extrage cuvntul ntr-unul din registrele UCP, dac este cazul; 6. Execut instruciunea; 7. Reia de la pasul 1 pentru a ncepe execuia instruciunii urmtoare. Viteza de execuie a instruciunilor se calculeaz in MIPS (Milioane de instruciuni pe secund). Acest ciclu este esenial n funcionarea oricrui calculator i se numete ciclul extrage-decodific-execut. Viteza de execuie a instruciunilor se calculeaz in MIPS (Milioane de instruciuni pe secund). Majoritatea instruciunilor fac parte dintr-una din urmtoarele dou categorii: registru-memorie sau registru-registru (ntreruperile sunt considerate semnale de stare). Instruciunile registru-memorie permit cuvintelor din memorie s fie ncrcate n registre, unde pot fi folosite ca date de intrare pentru UAL n instruciunile urmtoare, de exemplu. (Cuvintele sunt uniti de date transferate ntre memorie i registre. Un cuvnt poate fi un ntreg.). De asemenea, exist instruciuni registru-memorie care permit depozitarea coninutului registrelor napoi n memorie. O instruciune registru-registru extrage doi operanzi din registre i i aduce n registrele de intrare ale UAL, dup care execut o operaie oarecare asupra lor, de exemplu adunarea sau I logic, i depune rezultatul napoi ntr-unul din registre. Aa cum am artat i n primul capitol, procesul prin care cei doi operanzi sunt trecui prin UAL i rezultatul este depozitat se numete ciclul cii de date (data path cycle) i este inima celor mai multe UCP. El definete n mare msur ce poate face maina. Cu ct ciclul cii de date este mai rapid, cu att procesorul prelucreaz datele cu o vitez mai mare. O instruciune este o comand dat calculatorului prin care se descrie operaia sau operaiile pe care acesta trebuie s le execute. Un calculator este o main care poate rezolva probleme n folosul oamenilor prin executarea instruciunilor ce i-au fost date. O instruciune este o comand dat calculatorului prin care se descrie operaia sau operaiile pe care acesta trebuie s le execute. Instruciunile pe care le execut un calculator sunt grupuri de 0 i 1 care reprezint semnale electronice produse n interiorul calculatorului. Totalitatea instruciunilor care descriu cum se rezolv o anumit problem se numete program. Vocabularul unui limbaj de programare este constituit din totalitatea simbolurilor i cuvintelor folosite de limbajul respectiv. Totalitatea regulilor de scriere ale instruciunilor reprezint sintaxa limbajului, iar totalitatea regulilor prin care se asociaz o semnificaie instruciunilor reprezint semantica limbajului.

43

Arhitectura sistemelor de calcul

Circuitele electronice ale unui procesor (circuite digitale) pot recunoate i executa un set finit de instruciuni primare, simple, n care trebuie transformate toate programele nainte ca acestea s poat fi rulate (adic executate de ctre microprocesor). Translatarea n limbajul main a unui program scris ntr-un limbaj de nivel nalt (C++ , C# , Java , ), se poate realiza cu ajutorul unui compilator (compilers), care genereaz din programul surs un program executabil. O alt posibilitate este utilizarea unui interpretor (interpreters), care translateaz fiecare instruciune scris n limbajul de nivel nalt ntr-o succesiune de instruciuni main. ntregul set de instruciuni primare reprezint un limbaj care permite comunicarea dintre calculator (procesorul unui calculator) i om, i este singurul limbaj pe care l poate nelege un calculator. Exemplu de instruciune n limbaj main: 01001010-instruciunea transfer coninutul registrului DX n registrul CX. Exemplu de o instruciune scris n: C#: i=j+k; ASM: MOV eax,[12011234] ADD eax,[12011238] MOV [1201123C], eax Cod main: 0010 0000 0011 1001 0001 0010 0000 0001 0001 0010 0011 0100 1101 0000 1011 1001 0001 0010 0000 0001 0001 0010 0011 1000 0010 0011 1100 0000 0001 0010 0000 0001 0001 0010 0011 1100

44

Arhitectura sistemelor de calcul

Un exemplu de transformare a unei secvene de program (instruciuni) din limbaj C n limbaj main:

Cei care decid asupra setului de instruciuni primare sunt proiectanii microprocesoarelor. Fiecare microprocesor are un set de instruciuni propriu. De aceea un program proiectat pe un anumit procesor nu funcioneaz pe un procesor dintr-o alt familie. Pe urmtorul nivel al ierarhiei limbajelor de programare se afl limbajul de asamblare (assembly language) sau pe scurt asamblor. Acesta folosete cuvinte mai apropiate de limbajul uman, pentru a furniza instruciuni pe care s le ndeplineasc procesorul. Limbajul de asamblare manipuleaz direct registrele microprocesorului, evenimentele generate de acesta (ntreruperile) precum i adresele memoriei principale (RAM). Pentru a face un transfer de date de la i spre memorie, un microprocesor 8086 are nevoie de 4 perioade de ceas i cteva perioade de ateptare (wait state). O perioad de ateptare este un ticit al ceasului n care nu se ntmpl nimic, i se folosete pentru a reui sincronizarea procesorului cu celelalte componente din calculator. Frecvena de lucru a procesorului este mult mai mare dect frecvena magistralelor externe (frecvena de transport a datelor pe magistralele externe). Procesorul poate fi vzut ca un dispozitiv sincron: toate operaiile sale interne i externe se ntmpl sincron (deodat) cu fronturile semnalului de tact introdus prin pinul al procesorului. Activitatea procesorului se reduce, n mare, la dou

45

Arhitectura sistemelor de calcul

evenimente pe care le repet pn cnd este terminat execuia unui program, i anume: citete o instruciune din memorie execut instruciunea citit Timpul necesar executrii instruciunilor este variabil, depinznd de tipul instruciunilor. Procesoarele 8086 i 8088 au nevoie n medie de 12 tacturi pentru a executa o instruciune iar procesoarele Pentium de un singur tact pentru execuia instruciunilor medii. Test de autoevaluare No. 8 1. Care dintre urmtorii pai fac parte din ciclul extrage-decodific-execut ? a) b) c) d) mut datele din RAM n regitrii; translatarea adresei memoriei virtuale n adres de memorie fizic; selecteaz segmentele de memorie; stabilete dimensiunea segmentelor de memorie;

La calculul performanelor unui calculator se ia n considerare pe lng viteza procesorului, i dimensiunea magistralelor de date. Cu ct datele se pot transmite pe mai muli bii deodat, cu att calculatorul v-a fi mai rapid. Ciclul de tact, ciclul main, ciclul instruciune Aa cum am artat, o instruciune n cod main este executat de microprocesor n mai multe perioade ale semnalului de tact. S lum, de exemplu, procesorul Z80 i urmtoarele instruciuni: 4 taci : SCF - codul main 37H 23 taci : SET 0 (IX+59H) - codul main DDHCBH59HC6H Ambele instruciuni nscriu valoarea 1 n cte un bit al unui octet. Forma din stnga a instruciunilor este n limbaj de asamblare, iar cea din dreapta este codul main dar scris n hexazecimal. Definiia 1 Procesul care nsumeaz toate activitile care se desfoar n timpul unei perioade a semnalului de ceas (tact) se numete ciclu procesor sau ciclu de tact ( CC Clock Cycle). Definiia 2 Procesul care reunete toate activitile care se desfoar pe parcursul execuiei unei instruciuni main a crei cod este locat n memorie, se numete ciclu instruciune (IC Instruction Cycle). Definiia 3 Suma activitilor microprocesor care rezolv o activitate intermediar bine definit, avnd o finalitate clar, n cursul unei instruciuni, se numete ciclu main (MC Machine Cycle).

46

Arhitectura sistemelor de calcul

T ciclu de tact

T1 T2 T3 T4

Ciclu main M1 Ciclu instruciune

Cicluri de tact, main i instruciune


T ciclu de tact

T1 T2 T3 T4 T1 T2 T3

Ciclu main M1 ( FETCH )

Ciclu main M2 ( READ ) Ciclu instruciune

Ciclu instruciune format din 2 cicluri main Durata unui ciclu instruciune depinde de tipul instruciuni, pe cnd durata unui ciclu de tact este unic pentru fiecare microprocesor dat. Dac despicm instruciunea : SET 0 (IX+59H) n cicluri main, vom avea : 1. Se efectueaz 4 citiri din memorie pentru citirea instruciunii DDHCBH59HC6H 2. Se efectueaz o citire din memorie de la adresa IX+59H. 3. Se rescrie la aceast adres, octetul n care deja b0=0. Se observ c pentru a efectua instruciunea analizat procesorul va realiza 6 accese la memorie, din care 5 sunt de tip citire iar unul de tip scriere. Prin urmare, n loc de a realiza un circuit de comand care s rein un numr foarte mare de secvene distincte de activiti menite s implementeze setul de instruciuni al procesorului, a fost realizat un numr mic de cicluri main, cu ajutorul crora realizarea circuitului de comand al microprocesorului s-a simplificat considerabil. Aceste activiti specifice (cicluri main) sunt enumerate n continuare:

47

Arhitectura sistemelor de calcul

Citirea i decodificarea codului de operaie (fetch). O instruciune conine pn la 32 de bii adic 4 octei. Unul dintre aceti octei reprezint codul de instruciune. Numai dup citirea i decodificarea acestui cod, microprocesorul va ti ce are de fcut pentru a executa instruciunea. Citirea unui octet de date. Datele numerice care apar n cmpul unei instruciuni se citesc din memorie i se depun ntr-unul din registrele interne ale microprocesorului. Operaia este compus din dou tipuri de cicluri main de citire din memorie : ciclul de citire a codului de operaie (fetch) ciclul de citire al datelor numerice (read) Scrierea unui octet n memorie. Ciclul main care rezolv aceast operaie se numete ciclul main de scriere n memorie (write). Folosind aceste trei cicluri main, microprocesorul Z80 poate implementa marea majoritate a instruciunilor sale. Exist procesoare care mai au i alte cicluri main mai speciale, dar acestea vor fi tratate ntr-o lucrare mai avansat. n general, un microprocesor are urmtoarele cicluri main : 1. 2. 3. 4. 5. 6. 7. 8. ciclul de citire a codului de operaie (fetch) ciclul de citire al datelor din memorie (read) ciclul de scriere al datelor n memorie (write) ciclul de citire a unui dispozitiv de intrare (in) ciclul de scriere la un dispozitiv de ieire (out) ciclul intern ciclul de acceptare a cererii de ntrerupere ciclul de acceptare a cererii de magistral.

Frecvena de apariie a tipurilor 1 3 este cea mai mare, drept pentru care se mai numesc i cicluri de baz. Fiecare dintre aceste cicluri main sunt reprezentate printr-un cod. De exemplu, dac lum instruciunea: LD H, 73H Codul instruciunii este: 26H 73H Specificaia ei: ncarc registrul H cu 73H Codul ciclului main: 26H Test de autoevaluare No. 9 1. O instruciune este format din: un ciclu main din 4 taci un ciclu main din 8 taci dou cicluri main din 2 taci un ciclu main din 10 taci s se determine n ct timp este executat de un procesor PIV de 3 Ghz.

48

Arhitectura sistemelor de calcul

a. b. c. d.

8,66 ns 300 ns 10 ns 32 ns

1.15 Rspunsuri la testele de autoevaluare Testul no. 7 a) fabricarea procesoarelor pn la 2 Ghz. Testul no. 8 a. mut datele din RAM n regitrii. Testul no. 9 a. 8,66 ns. 1.16 Lucrare de verificare Nr. 3 1. Secvena urmtoare de program: MOV AX, 0B800h MOV DS, AX MOV BX, 0h mov cx,10 a: MOV BX, 0h push cx mov cx,10 w: cmp al,bl jz b MOV b.[BX],'A' d: add bx,1h add dx,1h loop w add ax,1h mov ds,ax pop cx loop a HLT b: MOV b.[BX],'X' jmp d definete: a. o matrice de 100 de elemente cu valoarea diagonalei principale format din 'X' b. o matrice de 100 de elemente cu diagonala principal format din 'A' c. o matrice de 10 de elemente de valoare cu diagonala secundar format din 0. d. o matrice de 100 de elemente de valoare 0B800h 2. n urma execuiei urmtoarei secvene de program:

49

Arhitectura sistemelor de calcul

mov ax, 500h mov ds, ax mov bx, 0h mov w.[bx], 1234h mov w.[bx+1], 1234h hlt valorile de la adresele 500h:0h i 500h:1h vor fi: a. 34 34 b. 34 12 c. 21 43 d. 21 34 3. Se d urmtorul segment de memorie de memorie i urmtoarea secven de program: Adres valoare mov ax, w.[0101h] 0100 78 0101 45 0102 34 registrul ax va avea valoarea: a. 4534 b. 7845 c. 3445 d. 7834 4. n urma execuiei urmtoarei secvene de program: mov ax, 0500h mov ds,ax mov bx, 0h mov w.[bx], 1234h mov ax, 1h mul b.[bx] hlt ; AX are valoarea: a. 34 b. 3434 c. 05 d. 12 5. n urma execuiei urmtoarei secvene de program: mov ax, 500h mov ds, ax mov bx, 0h mov w.[bx], 1234h mov w.[bx+1], 1234h mov al, b.[bx] hlt

50

Arhitectura sistemelor de calcul

AX are valoarea: a. 0534 b. 3434 c. 1234 d. 3412 6. Se d urmtorul segment de memorie de memorie i urmtoarea secven de program: Adres valoare 0100 78 0101 45 0102 34 registrul ax va avea valoarea: a. 45 b. 4534 c. 3445 d. 7834 7. n urma execuiei programului : mov ax,1 mov cx,10 a: mul cx cmp cx,0 jz a hlt AX are valoarea: a. 10! b. 1+2++10 c. 1+2++9 d. 0 mov al, w.[0101h]

51

Arhitectura sistemelor de calcul

1.17 Memoria Principal (RAM) Memoria n care sunt pstrate programele nainte de execuie se numete RAM (Random Access Memory), memorie cu acces aleator. Acest tip de memorie se mai numete i memorie principal i este zona de memorie care poate fi accesat n mod direct de ctre microprocesor. Orice cantitate de date nainte de a putea fi prelucrat de microprocesor trebuie s treac mai nti prin memoria intern a calculatorului. Fr o memorie din care procesoarele s poat citi i n care s poat scrie informaii nu ar putea fi proiectat nici un calculator numeric cu program memorat.

Memoria este acea parte a unui calculator n care pot fi pstrate programele i datele pe o perioad mai scurt sau mai lung de timp.

Figura 4.1 Modul de memorie RAM. Unitatea elementar a memoriei este bitul. Un bit poate conine valoarea 0 sau 1. Informaia numeric poate fi pstrat fcnd distincie ntre dou valori diferite ale unei mrimi fizice continue, cum ar fi tensiunea sau curentul. Cu ct numrul de valori distincte este mai mare, cu att nivelul de separaie ntre dou valori consecutive este mai redus, i memoria este mai puin sigur. Memoria intern a unui calculator este caracterizat de doi parametrii: - dimensiunea; - timpul maxim de rspuns; Dimensiunea unei memorii este n strns legtur cu microprocesorul folosit (cu limitrile impuse de magistralele interne procesorului, respectiv cu dimensiunea regitrilor). Cu ct aceasta este mai mare cu att performanele calculatorului sunt mai bune. Timpul maxim de rspuns se refer la intervalul de timp care este necesar memoriei interne pentru a citi sau scrie date. Mai exact, intervalul de timp ce se scurge din momentul n care primete de la microprocesor comanda de citire si momentul n care depune pe magistrala de date valoarea citit (similar este si pentru scriere). Valoarea medie a acestui parametru este de 60 ns. Cu ct aceast valoare este mai mic, cu att programele sunt procesate mai repede.

52

Arhitectura sistemelor de calcul

1.18 Adrese de memorie Memoriile sunt alctuite din grupuri de bii care se numesc celule sau locaii de memorie. Acestea pot pstra, fiecare o parte a informaiei. Fiecare celul are un numr numit adres, prin care programele se pot referi la ea. O memorie cu n celule, are adresele cuprinse ntre 0 i n-1. Toate celulele unei memorii pot conine acelai numr de bii. Dac o celul poate conine k bii, ea poate memora oricare dintre cele 2k combinaii diferite. n figura urmtoare sunt prezentate trei organizri diferite pentru o memorie de 96 de bii. Celulele de memorie adiacente au adrese consecutive. Dac o adres are m bii atunci numrul maxim de celule adresabile este m 2 . De exemplu, o adres folosit pentru a referi memoria din figura a are nevoie de cel puin 4 bii ca s poat exprima toate numerele de la 0 la 11. Pentru figura b i c este suficient o adres de 3 bii. Numrul de bii din adres determin numrul maxim de celule adresabile direct n memorie i nu depinde de numrul de bii ai celulei. Att o memorie cu 212 celule de cte 8 bii fiecare, ct i o memorie cu 212 celule de cte 64 de bii fiecare, necesit adrese pe 12 bii.
Celule de memorie

Adrese de memorie

Figura 4.2 Trei moduri de organizare pentru o memorie de 96 de bii. Celula de memorie este cea mai mic unitate de memorie adresabil. Toi productorii de calculatoare au adoptat standardul celulei de 8 bii, adic de un octet (byte). Octeii sunt grupai n cuvinte de cte 32 sau 64 de bii. Un calculator cu un cuvnt de 32 de bii are 4 octei/cuvnt, iar unul cu un cuvnt de 64 de bii are 8 octei/cuvnt. Importana cuvntului provine din faptul c majoritatea instruciunilor opereaz cu cuvinte ntregi, de exemplu adun dou cuvinte. Astfel, o main pe 32 respectiv 64 de bii va avea registre de 32 respectiv 64 de bii i instruciuni pentru prelucrarea cuvintelor de 32 respectiv 64 de bii.

53

Arhitectura sistemelor de calcul

n urmtoarele dou figuri sunt prezentate tipurile de date ce pot fi reprezentate n memorie (a) precum i aranjarea lor n memorie (b).

(a)

(b)

1.19 Organizarea fizic i logic a memoriei principale la microprocesoarele 80x86. CPU este conectat la memoria principal prin magistrala de adrese i date. Pentru a accesa un element de memorie procesorul transmite pe magistrala de adrese adresa elementului de memorie specificat. Memoria principal poate fi vzut ca un tablou de octei. Folosind sintaxa Pascal avem: Memory : array [0..MaxRAM] of byte; Unde MaxRAM reprezint numrul maxim de octei de memorie principal care pot fi accesai prin intermediul magistralei de adrese. Scrierea n memorie este echivalent cu: Memory [address] := Value_to_Write; Citirea unui element de memorie este echivalent cu: Value_Read := Memory [address]; Cu o singur linie pe magistrala de adrese, procesorul poate crea exact dou adrese unice: 0 i 1. Cu un numr de n linii de adres pe magistral, un procesor poate crea, i deci accesa , 2n adrese unice. Deci numrul de linii de adrese de pe magistrala de adrese determin numrul maxim de celule de memorie adresabile i de locaii de I/O. De exemplu, un procesor cu 20 de linii de adres poate accesa pn la 1,048,576 (sau 220) de locaii de memorie. n continuare este prezentat un tabel cu numele procesorului, dimensiunea magistralei de adrese i cantitatea maxim de memorie adresabil.

54

Arhitectura sistemelor de calcul

Lime magistral date

Procesor

Mrime registre interne

Max memorie adresabil

8088 8086 286 386 SX 486 Pentium I Pentium III Pentium IV

16 bii 16 bii 16 bii 32 bii 32 bii 32 bii 32 bii-128 bii 32 bii-128 bii

8 bii 16 bii 16 bii 16 bii 32 bii 64 bii 64 bii 64 bii

20 bii 20 bii 24 bii 32 bii 32 bii 32 bii 32 bii 36 bii

220= 1 048 576=1 Mb 220= 1 048 576=1 Mb 224= 16 777 216=16 Mb 232=4 204 976 206=4 Gb 232=4 204 976 206=4 Gb 232=4 204 976 206=4 Gb 232=4 204 976 206=4 Gb 236=32 Gb

n mod real nu toat memoria disponibil este folosit pentru instruciunile i datele programelor. O anumit parte din memorie este folosit n alte scopuri. Pentru a scrie n memorie, Memory [125] := 0, CPU plaseaz valoarea 0 pe magistrala de date, adresa 125 pe magistrale de adrese i activeaz linia de scriere n memorie (write) din magistrala de comenzi.

Figura 4.4 Scrierea unei date n memoria principal. Pentru a citi din memorie, CPU:=Memory [125] , CPU plaseaz valoarea adresei, adic 125 pe magistrale de adrese i activeaz linia de citire din memorie (read) din magistrala de comenzi dup care citete data pus pe magistrala de date.

Figura 4.5 Citirea unei date din memoria principal.

55

Numr de tranzistoare 29 000 29 000 134 000 257 000 1 600 000 3 100 000 5 500 000 >10000000

Lrgime magistral adrese

Arhitectura sistemelor de calcul

Tem de reflecie Cum influeneaz performanele calculatorului, capacitatea de stocare a memoriei RAM i rapiditatea acesteia. Scrie i rspunsul n spaiul liber din chenar.

1.19 Moduri de organizare a memoriei Una dintre cele mai importante caracteristici ale memoriei este modul de organizare al ei i implicit modul de accesare a informaiei din memorie. Aa cum am vzut, memoria este organizat ca un set de locaii (celule) de memorare numerotate consecutiv ncepnd de la 0. Adresa fizic a unei locaii de memorie este reprezentat printr-un numr asociat locaiei respective, iar mulimea total a adreselor fizice reprezint spaiul de adrese fizice al memoriei care este limitat de dimensiunea magistralei de adrese. Prin urmare trebuie fcut observaia c numrul de cuvinte adresabile depinde numai de numrul de bii de adres i nu de numrul de cuvinte disponibile n memoria respectiv. O adres logic este o adres utilizat ntr-o instruciune dintr-un program iar mulimea total a acestora reprezint spaiul adreselor logice. Organizarea acestui spaiu definete arhitectura memoriei principale i este de o importan major pentru orice programator. Organizarea spaiului de adrese fizice este determinat de tehnologia utilizat pentru fabricarea memoriei. Organizarea spaiului de adrese logice este determinat de sistemul de operare i de structura programelor ce vor rula n memorie. La primele calculatoare spaiul de adrese logice era identic cu spaiul de adrese fizice. 1.20 Memoria liniar sau modul real de organizare al memoriei In cazul primelor calculatoare memoria era organizat ntr-un spaiu liniar i continuu de adrese care porneau de la 0 i se continuau fr ntreruperi pn la limita superioar impus de magistrala de adrese (numrul total de bii dintr-o adres logic). n acest caz spaiul de adrese logice coincidea cu spaiul de adrese fizice. Dezavantajul unui astfel de memorii era c, dac dou programe care aveau codurile plasate la adrese diferite fceau din greeal un acces la partiia celuilalt (eroare de adresare) (vezi figura de mai jos), rezultatele erau catastrofale.

56

Arhitectura sistemelor de calcul 655335

Memorie fizic

655335
Partiie program A

Program

333333
Eroare de adresare

Partiie program B

Program B

0 0

Figura 4.6 Memoria liniar. 1.21 Maparea memoriei liniare Maparea este procesul prin care adresele logice pot fi translatate n adrese fizice, adic este un mecanism de realocare a spaiului de adrese logice peste spaiul de adrese fizice. Acest proces este foarte util n sistemele n care mai multe programe i partajeaz memoria fizic (multitasking), fr a interfera ntre ele. Astfel, fiecare program are propriul spaiu de adrese logice, independent de celelalte programe. 1.22 Memoria segmentat Segmentarea memoriei este un mecanism de management al memoriei care permite programatorilor s-i partiioneze programele n module care pot opera independent unul de cellalt i care pot crete sau descrete n dimensiune. n acest mod memoria fizic este divizat logic n mai multe buci numite segmente de memorie. n fiecare segment adresarea componentelor sale (cuvinte de memorie) este liniar. O adres de memorie este compus n acest caz din selectorul segmentului de memorie i deplasamentul (offset-ul) din cadrul segmentului respectiv, i are forma : selector_ segment:offset

57

Arhitectura sistemelor de calcul


Spaiu de adrese fizice

90000
Spaiu de adrese logice

85535
M E C A N I S M M A P A R E

65535
Program A

40000

60000 50000

Program B

0 Figura 4.7 Maparea memoriei liniare.

10000

Avantajul acestei organizri a memoriei este acela c programele pot fi ncrcate n memorie n segmente astfel nct s reflecte structura logic a lor (programelor). Astfel un segment poate conine codul programului principal, altul codul unei proceduri, altul codul unui obiect al programului i aa mai departe. Dac ne gndim c noile tendine ale programrii sunt programarea orientat pe obiecte, atunci putem atribui fiecrui segment de memorie un obiect care n cursul execuiei programului poate crete sau descrete n dimensiune.
Memorie liniar Memorie segmentat

65535

Date (variabile) globale

15535 0 15000

Date (variabile) globale 15000 Obiectul B date locale Obiectul C date locale

50000 35000 20000 10000

Obiectul C date locale Obiectul B date locale Obiectul A date locale

0 10000

0 Obiectul A date locale

1000
Program principal

Program principal 0

0 Figura 4.8 Comparaie ntre memoria liniar i cea segmentat.

58

Arhitectura sistemelor de calcul

1.23 Maparea memoriei segmentate n acest caz maparea se face printr-o tabel de segmente care conine cte o intrare numit descriptor de segment (la care se refer selectorul de segment) pentru fiecare segment existent n memorie. Descriptorul de segment conine adresa de nceput a segmentului, lungimea acestuia i drepturile de acces la segmentul respectiv. Drepturile de acces la un segment se refer la posibilitatea unui program de a accesa sau nu segmentul respectiv. Pn la procesoarele 80386 exclusiv selectorul segmentului i adresa offset-ului erau scrise pe 16 bii. De la 80386 adresa de offset este scris pe 32 de bii. Dimensiune maxim a unui segment este dat de dimensiunea offset-ului, de exemplu pentru un offset de 16 bii avem 216=26210=64Kb/segment, iar pentru un offset de 32 de bii avem 232=22230=4 Gb/segment.
segment deplasament
locaia

Tabela de segmente

Baza segmentului

. :

segment

Figura 4.9 Maparea memoriei segmentate.

Figura 4.10 Modul de adresare a memoriei segmentate.

59

Arhitectura sistemelor de calcul

1.24 Memoria intermediar Memoria intermediar se situeaz ntre procesor i RAM. Deoarece procesoarele au o vitez de lucru mai mare dect memoriile RAM, sau dezvoltat tehnici de combinare a unei cantiti mici de memorie rapid cu o cantitate mare de memorie lent, astfel nct s se obin aproape viteza memoriei rapide i capacitatea celei mari. Memoria mic, rapid se numete memorie intermediar sau memorie cache. Aceast memorie este format din cipuri de memorie cu vitez de lucru mare i care pstreaz copia ultimelor date accesate de ctre procesor. Astfel, cuvintele de memorie cele mai des utilizate sunt pstrate n memoria intermediar. Atunci cnd UCP are nevoie de un cuvnt, l caut mai nti n memorie intermediar, iar n cazul n care nu l gsete l caut n memoria principal. Astfel timpul mediu de acces la date este redus semnificativ. Instruciunile unui program nu acceseaz memoria absolut la ntmplare. Dac o anumit referire la memorie este la adresa A, atunci este foarte probabil ca urmtoarea referire la memorie s se afle n vecintatea lui A. Acest principiu conform cruia referirile la memorie fcute ntr-un interval scurt de timp tind s foloseasc doar o poriune mic din ntreaga memorie, se numete principiul localitii datelor i formeaz baza tuturor sistemelor de memorie intermediar. El funcioneaz n urmtorul mod: atunci cnd un cuvnt este referit, att el ct i o parte din vecinii si sunt adui din memoria mare i lent (RAM) n memoria intermediar, astfel nct la urmtoarea utilizare s poat fi accesat rapid. Memoria cache este plasat n mod logic ntre UCP i memoria principal, iar din punct de vedere fizic ea poate fi plasat n mai multe locuri. Memoria principal

Memoria cache este format din cipuri de memorie cu vitez de lucru mare i care pstreaz copia ultimelor date accesate de ctre procesor.

Procesor (CPU)

Memoria CACHE

BUS

Figura 4.13 Plasarea memoriei intermediare. Dac un cuvnt este scris sau citit de k ori ntr-un interval scurt de timp, calculatorul va avea nevoie de 1 referire la memoria lent i k-1 referiri la memoria intermediar (cache). Deci, cu ct k este mai mare cu att performana global este mai bun. Folosind principiul localitii datelor, memoriile principale i cele intermediare sunt mprite n blocuri de memorie de dimensiune fix. Blocurile memoriei intermediare sunt numite linii de memorie intermediar (cache lines). La apariia unei erori ntreaga linie este rencrcat din memoria principal, nu doar cuvntul cutat. De exemplu, cu o linie de 64 de octei, o referire la adresa de memorie 260 va ncrca ntr-o linie de memorie intermediar toi octeii cuprini ntre 256 i 319. Acest mod de funcionare este mult mai eficient dect extragerea cuvintelor individuale, deoarece extragerea a k cuvinte odat se face mai rapid dect extragerea unui cuvnt de k ori. O memorie cache poate avea capaciti cuprinse ntre 32KB i civa megaoctei.

60

Arhitectura sistemelor de calcul

O alt caracteristic important este plasarea informaiilor n memoria cache. Astfel exist dou variante: prima este cea cu memorie intermediar unic n care datele i instruciunile folosesc aceeai memorie intermediar, i cealalt variant este cu memorie intermediar divizat, cu instruciunile ntr-o memorie intermediar i datele n alta. Ultima variant se mai numete arhitectur Harvard. Fizic memoria cache poate fi localizat n interiorul cipului UCP i/sau n exteriorul lui. 1.25 Lucrare de verificare Nr. 4 1. Caracterizarea memoriei interne a unui calculator. 2. Scrierea/Citirea unei date n memoria principal. 3. Maparea memoriei segmentate. Exemplu 4. Enunai principiul localitii datelor. 1.26 Bibliografie 1. Andrew S.Tanenbabaum, Organizarea structurat a calculatoarelor. Ed. Agora 1999. 2. David A. Patterson, John L. Hennessy, Organizarea i proiectarea calculatoarelor. Ed. All 2002.

61

Arhitectura sistemelor de calcul

Cap.2 Cum funcioneaz programele


Obiective: Un limbaj de programare este un set bine definit de expresii i reguli (sau tehnici) valide de formulare a instruciunilor pentru un computer. Un limbaj de programare are definite un set de reguli sintactice i semantice. El d posibilitatea programatorului s specifice n mod exact i amnunit aciunile pe care trebuie s le execute calculatorul, n ce ordine i cu ce date. Specificarea const practic n ntocmirea/scri erea programelor necesare ("programare"). Dup studiul acestui capitol, studentul va avea cunotine suficiente pentru a fi capabil: s neleag: cum este proiectat i cum funcioneaz un limbaj de programare. Programele reprezint descrierea unui fenomen cu ajutorul unui limbaj de programare. Un program se scrie cu ajutorul unui editor de texte, dup care este salvat pe un mediu de stocare, n vederea utilizrii ulterioare. Vom descrie n continuare etapele prin care un program scris n limbajul C# i stocat sub forma unui fiier pe disc, se transform ntr-un program ce poate fi executat pe un calculator. Anumite sisteme de programare combin aceste etape pentru a reduce timpul transformrii, dar acestea sunt cele patru etape logice prin care trec toate programele:
Program C#

Compilator

Program n limbaj de asamblare

Asamblor

Modul n limbaj main

Rutin de bibliotec (limbaj main)

Editor de legturi

Executabil: Program n limb main

ncrctor

Memorie

Figura 5.1 cele patru etape logice prin care trec toate programele.

62

Arhitectura sistemelor de calcul

Un program scris intr-un limbaj de nivel nalt este translatat (compilat) ntr-un program n limbaj de asamblare. Editorul de legturi combin diferite module cu rutine din biblioteci pentru a rezolva toate referinele. ncrctorul pune apoi instruciunile programului (n cod main) n locaii de memorie potrivite dup care procesorul le execut. Pentru executarea unui program scris ntr-un limbaj oarecare, exist, n principiu, dou abordri: compilare sau interpretare. La compilare, compilatorul transform programul-surs n totalitatea sa ntr-un program echivalent scris n limbaj ma in, care apoi este executat. La interpretare interpretorul ia prima instruciune din programul-surs, o transform n limbaj main i o execut; apoi trece la instruciunea doua i repet aceleai aciuni .a.m.d. Unele limbaje se preteaz bine la compilare; de exemplu limbajele clasice: Pascal, Fortran, C. Altele sunt cu predilec ie interpretate, de ex. BASIC, PHP, SQL. Multe limbaje moderne combin compilarea cu interpretarea: codul surs este compilat ntr-un limbaj binar numit bytecode, care la rulare este interpretat de ctre o main virtual. De remarcat faptul c unele interpretoare de limbaje pot folosi compilatoare a a -numite just-in-time, care transform codul n limbaj main chiar naintea executrii. 2.1 Compilatorul Este un program care transform un program scris ntr-un limbaj de nivel nalt ntr-un program n limbaj de asamblare. Diferena dintre un limbaj de asamblare i unul de nivel nalt este dat de numrul liniilor de cod scrise. Numrul liniilor de cod este foarte mare la un program scris n limbaj de asamblare faa de acelai program scris ntr-un limbaj de nivel nalt. Printre cele mai importante operaii ale compilatorului se gsesc analiza sintactic a instruciunilor unui program. La nceputul erei calculatoarelor multe sisteme de operare i compilatoare erau scrise n limbaj de asamblare, deoarece capacitatea memoriei era foarte mic i deci compilatoarele erau ineficiente. Cu ct capacitatea memoriei a crescut cu att se folosesc din ce n ce mai mult compilatoare performante ce produc programe n limbaj de asamblare i chiar n cod main. 2.2 Asamblorul Asamblorul transform programul din limbaj de asamblare ntr-un fiier obiect, care este o combinaie de instruciuni n limbaj main, date i informaii necesare pentru a aeza n ordine corect instruciunile n memoria principal. Asamblorul produce versiunea binar (n cod main) a fiecrei instruciuni. Prin urmare asamblorul trebuie s determine adresele corespunztoare tuturor etichetelor (din instruciunile de salt i de transfer de date). Etichetele sunt inute intr-un tabel de simboluri i etichete. Limbajul de asamblare, ca orice limbaj de programare, are un vocabular ce reprezint instruciunile limbajului, o sintax care se ocup de corectitudinea scrierii instruciunilor i o semantic care se ocup cu semnificaia instruciunilor. Instruciunile limbajului sunt definite de ctre proiectanii limbajului prin simboluri care se mai numesc i cuvinte cheie ale limbajului. Pe lng acestea, programatorii i pot defini propriile simboluri care reprezint variabile, etichete, nume de proceduri, funcii, etc. n mod obinuit un program poate face apel la o procedur sau funcie definit n alt fiier. Simbolurile programului principal sunt numite simboluri locale iar cele din fiierele externe sunt numite simboluri

63

Arhitectura sistemelor de calcul

externe. De obicei un simbol care trebuie s fie accesibil din alt fiier va fi exportat utiliznd instruciunea PUBLIC. La fel dac se utilizeaz un simbol nedefinit n programul principal (fiierul curent), se definete simbolul cu instruciunea EXTERN, ceea ce i spune asamblorului c simbolul este definit n alt fiier. La prima vedere un program scris ntr-un limbaj de asamblare ar putea fi translatat instruciune cu instruciune n limbaj main. Deoarece n procesul de programare exist i se folosesc instruciuni de salt, strategia amintit nu funcioneaz. De exemplu dac avem o instruciune de salt la eticheta L, asamblorul nu poate translata aceast instruciune pn cnd nu tie adresa instruciunii L, instruciune care poate fi la sfritul programului. n astfel de cazuri asamblorului i este imposibil s gseasc adresa fr s citeasc ntreg programul. Pentru a rezolva aceast dificultate asamblorul citete programul surs de dou ori. La prima citire definiiile simbolurilor, inclusiv etichetele de instruciuni sunt colectate i memorate mpreun cu valorile lor ntr-o tabel (tabela de simboluri). La a doua citire valorile tuturor simbolurilor sunt cunoscute i fiecare instruciune este citit, generat i scris. Fiierul obiect, pentru sistemele Unix, conine n mod obinuit ase componente distincte [dup David A. Patterson i John L. Hennessy Organizarea i proiectarea calculatorului pag.144]: antetul fiierului obiect descrie dimensiunea i poziia celorlalte componente ale fiierului obiect; segmentul de text conine codul limbajului main; segmentul de date conine orice dat ce nsoete limbajul : fie date statice, care sunt alocate pentru tot programul, fie date dinamice, care pot s se extind sau s se restrng, dup cum o cere programul; informaia de realocare identific cuvintele de instruciuni sau de date, care depind de adresa absolut, atunci cnd programul este ncrcat n memorie; tabloul de simboluri conine etichetele rmase nedefinite, de tipul referinelor externe; informaia de depanare conine o descriere concis a modului n care au fost compilate modulele, astfel nct programul de depanare s poat asocia instruciunile main cu codul surs i s fac inteligibile structurile de date. 2.3 Editorul de legturi

n cazul modificrii unei linii de program dintr-o procedur n mod normal ar trebuii compilat tot programul. Deoarece programele moderne sunt structurate n module (proceduri) este mult mai eficient compilarea numai a modului n care sa modificat linia de program. n acest caz trebuie compilat i asamblat independent fiecare modul apelat de ctre programul principal. Acest fapt presupune existena unui program numit editor de legturi (link editor) care s lege toate modulele n limbaj main principal. Acest program face parte din structura asamblorului.

64

Arhitectura sistemelor de calcul

Program principal Funcie 1 apel procedur 1 . . . apel funcie 1 . . . apel procedur K . Procedur 1

Funcie K

Procedur K

Figura 5.2 Exemplu de programare cu structur modular.


Procedura 1 Modul obiect 1 Editor de legturi Program binar executabil

Procedura 2

Translator

Modul obiect 2

Procedura 3

Modul obiect 3

Figura 5.3 Generarea unui program binar executabil, din trei proceduri surs, translatate independent, cu utilizarea unui editor de legturi. Tem de reflecie Specificai care dintre limbajele de programare folosite de dv. Folosesc interpretor i care compilator. Descriei -le n spaiul liber din chenar.

5.4

Structura unui modul obiect

n general un modul obiect conine ase pri, aa cum ne arat n figura de mai jos:
Identificare Tabel puncte de intrare Tabela referinelor Constante i instruciuni main Dicionar de realocare Sfritul modulului

n partea de identificare este coninut numele modulului, lungimea diferitelor pri ale modulului i poziia lor, iar uneori i data asamblrii. Tabela de puncte de intrare este o list a simbolurilor definite n modul, pe care alte module le pot referi mpreun cu valorile lor. Aceste puncte de intrare (entry points) sunt indicate de ctre programator prin instruciunea PUBLIC.

65

Arhitectura sistemelor de calcul

Tabele referinelor externe const dintr-o lips de simboluri utilizate n modul, dar care sunt definite n alte module. Lista este folosit de ctre editorul de legturi pentru a putea insera adresele corecte n instruciunile ce utilizeaz simboluri externe (external simbols). Acestea sun declarate cu ajutorul instruciunii EXTERN. Observaie: n alte limbaje de programare se pot folosi instruciuni similare celo r EXTERN i PUBLIC p en tru declararea simbolurilor externe i respectiv a simbolurilor ce pot fi accesate din exteriorul modulului curent. Partea a patra a unui modul obiect const din codul de asamblat i constantele programului. Este singura parte din modulul obiect care va fi ncrcar n memoria principal pentru a fi executat. Celelalte pri vor fi folosite de editorul de legturi i apoi eliminate nainte de nceperea execuiei. Dicionarul de realocare furnizeaz informaii despre adresele care vor fi realocate. Cea de-a asea parte este u n in d c i ato r d e sfrit d e mo d u lcare de o b c i ei este o su m de verificare pentru descoperirea erorilor de citire a modulului. Aa cum am artat n paragrafele anterioare, fiecare modul obiect are propriul spaiu de adres, care ncepe de la 0.
Modulul obiect A 400 600 500 400 CALL C Modulul obiect B

100 0 JP 200

300 MOV DX, BX 200 Modulul obiect C 0 JP 300

500 400 300 CALL D 300 Modulul obiect D

Modulul obiect
200 100 MOV CX, BX 100

JP 200

JP 200

fig. A Pentru a executa un program editorul de legturi trebuie s aduc modulele acestuia n memoria principal pentru a forma imaginea programului binar executabil (cod main) aa cum reiese din figura urmtoare :

66

Arhitectura sistemelor de calcul

1900 1800 1700 1600 JP 200 MOV DX, BX

Modulul obiect D

1500 1400

CALL D

Modulul obiect C 1300 1200 1100 JP 200 MOV CX,BX

1000

CALL C

Modulul obiect B 800 MOV DX, BX

500

JP 300

400

CALL B

300 200 100 0

MOV AX, BX

Modulul obiect A

JP 200

Figura 5.4 Programul executabil ncrcat n memorie. Una dintre sarcinile editorului de legturi este de a construi o imagine exact a spaiului virtual de adrese al programului executabil i deci, de a poziiona toate modulele obiect la locaiile lor corecte. De obicei primele adrese de memorie principal sunt utilizate de ctre vectorii de ntrerupere, comunicaia cu sistemul de operare sau alte scopuri. Programul este pus de obicei ncepnd de la o adres de memorie mai mare dect 0. Programul executabil din fig. A ncrcat n memorie va da erori n cazul n care ar fi rulat. Acest fapt se datoreaz plasrii instruciunilor la adrese diferite fa de adresele iniiale ale fiecrui modul. De exemplu instruciunea JP 200 din modulul A nu va putea realiza saltul la instruciunea de transfer de date MOV AX, BX, aa cum era

67

Arhitectura sistemelor de calcul

iniial n modulul obiect A, deoarece aceasta se afl la adresa 300. Din acelai motiv toate instruciunile cu referire la memorie vor fi eronate. Acest fenomen se numete problema de realocare (realocation problem) i apare deoarece fiecare modul obiect are, iniial, propriul spaiu de adres.

1900 1800 1700 1600 1500 1400 1300 1100 1000 800 500

MOV DX, BX Modulul obiect D JP 1800 CALL 1600 MOV CX,BX JP 1300 CALL 1100 MOV DX, BX JP 800 CALL 500 MOV AX, BX JP 300 Modulul obiect A Modulul obiect B Modulul obiect C

Figura 5.5 Aceleai 400 module obiect dup realocarea 300 memoriei.
200 100 0

O alt problem este cea a referinelor externe (external reference) care se refer la instruciunile de apel de procedur. De exemplu la adresa 400 instruciunea apeleaz modulul obiect B, dar asamblorul nu are o modalitate de a ti adresa modulului B, pn n momentul editrii legturilor. Att problema de realocare ct i problema referinelor externe sunt rezolvate de ctre editorul de legturi. Paii prin care editorul de legturi concateneaz modulele obiect ntr-un singur spaiu liniar de adres sunt: 1. Construiete o tabel cu toate modulele obiect i dimensiunile acestora; 2. Bazndu-se pe aceast tabel, asigneaz o adres de start pentru fiecare modul obiect; 3. Determin toate instruciunile cu referire la memorie i adun fiecruia o constant de realocare (realocation constant), egal cu adresa de start a modulului su; 4. Determin toate instruciunile ce fac referire la alte proceduri i insereaz adresa acelor proceduri, n poziiile respective. Tabela pentru modulele obiect din fig. A : MODULUL LUNGIMEA A B C D 400 600 500 300 ADRESA DE START 100 500 1100 1600

68

Arhitectura sistemelor de calcul

2.4

Realocarea dinamic Majoritatea sistemelor de operare moderne sunt axate pe conceptul de multitasking (multiprogramare), adic pot fi rulate la un moment dat mai multe programe deodat. n aceast ordine de idei putem avea o multiprogramare real cnd un calculator are mai multe procesoare i mai multe programe sunt rulate fiecare n acelai timp pe procesoare diferite, i multiprogramarea virtual n care mai multe programe ruleaz pe acelai procesor, procesorul fiind partajat de acestea. n astfel de cazuri este foarte greu s se asigure ncrcarea aceluiai program la aceeai locaie de memorie. Urmtoarea figur ne sugereaz ce se ntmpl dac programul din fig. (5.5) este rencrcat la adresa 500 n locul adresei 100, unde editorul de legturi l pusese iniial. Deci toate adresele din memorie sunt eronate. Figura 5.6 Ce se ntmpl dac programul din fig. (5.5) este rencrcat la adresa 500 n locul adresei 100, unde editorul de legturi l pusese iniial.
Modulul obiect A

2200 2100 2000 1900 JP 1800 MOV DX, BX Modulul obiect D

1800 1700

CALL 1600

Modulul obiect C 1600 1500 1400 JP 1300 MOV CX,BX

1300 1200

CALL 1100

Modulul obiect B 1100 1000 900 800 JP 800 MOV DX, BX

700

CALL 500

600 500 400 0

MOV AX, BX

JP 300

2.5 Lucrare de verificare Nr. 5 1. Ce este un program de calculator ? 2. Descriei funcionarea unui compilator. 3. Descriei funcionarea unui interpretor. 4. Care este scopul unui editor de legturi ? 5. Cum se realizeaz generarea unui program binar executabil ?

2.6 Bibliografie 1. Andrew S.Tanenbabaum, Organizarea structurat a calculatoarelor. Ed. Agora 1999. 2. David A. Patterson, John L. Hennessy, Organizarea i proiectarea calculatoarelor. Ed. All 2002. 3. Marius Tomescu, Primii pai n lumea calculatoarelor. Ed. Albastr 2002.

69

Arhitectura sistemelor de calcul

70

Arhitectura sistemelor de calcul

Cap. 3 Magistralele unui calculator


Obiective: Dup studiul acestui capitol, studentul va avea cunotine suficiente pentru a fi capabil: s neleag cum sunt transportate informaiile ntre principalele componente ale unui calculator. Pentru a putea comunica ntre ele, componentele unui calculator sunt conectate printr-o cale electric numit magistral (bus). Conform funciilor pe care le ndeplinesc, magistralele pot fi de mai multe tipuri. O magistral este compus fizic din mai multe fire paralele prin care trec semnale electrice.

adrese

O magistral poate transporta date, adrese i semnale de control i stare.

date

Semnale de comand i de stare

Figura 6.1 O magistral care poate transporta date, adrese i semnale de control i stare. Magistralele pot fi interne sau externe procesorului. Magistralele interne procesorului sunt utilizate pentru a transporta date de la i ctre ALU precum i ntre memoria cache intern i registrele microprocesorului. Magistralele interne ale procesorului lucreaz la o frecven egal cu cea a procesorului. Cele mai importante magistrale ale unui calculator sunt: magistrala procesor-memorie; magistrala de I/O; magistrala procesorului;

71

Arhitectura sistemelor de calcul

Memorie cache extern

Magistrale interne Registre Controlor de magistral

Magistrala de memorie

RAM

Magistral intern

Magistrala procesorului

Figura 6.2 Magistralele externe procesorului. Pentru a prelucra o instruciune, UCP pune adresa de memorie a instruciunii pe pinii si de adres. Apoi el activeaz una sau mai multe linii de control, pentru a informa memoria c vrea s citeasc 32 de bii de date ( de exemplu). Memoria rspunde punnd biii de date pe pinii de date ai UCP-ului i activeaz un semnal care spune c aciunea a fost ndeplinit. Cnd UCP recepioneaz acest semnal, el accept biii de date i execut instruciunea. Pe lng pinii de adrese i date fiecare UCP are civa pini de control i pini pentru alimentare (de obicei ntre 2.2V i 5V).

Figura 6.3 Semnalele externe ale unui microprocesor Z 80 80x86.

72

Arhitectura sistemelor de calcul

3.1

Magistrala de date la procesoarele Z 80 80x86

Magistrala de date este reprezentat prin ansamblul de linii (trasee) de transmisie utilizate pentru a transmite i recepiona date. Cu ct sunt mai multe linii de transmisie paralele, cu att se pot transmite simultan mai multe semnale, adic date, i magistrala este mai rapid. Pentru un interval scurt de timp pe un traseu poate exista o tensiune de 5 voli sau 0 vo li, p entru a semn aliza u n b it de date egal cu 1 sau 0. Cu ct su n t mai multe linii de transmisie, cu att se pot transmite mai muli bii distinci n acelai timp, deci mai multe date. De exemplu un cip 286 poate transmite sau recepiona date pe 16 bii (linii) simultan. Un microprocesor Pentium poate transmite i recepiona 64 de bii, deci are o magistral de 64 de bii de date. Cele 16 linii notate cu D0 D15 pornesc din registrul de instruciuni IR al microprocesorului i sunt folosite pentru a asigura transferul de date ntre microprocesor, memorie i dispozitivele de intrare/ieire. Magistrala de date este bidirecional. Pe ea intr date atunci cnd se efectueaz o citire din memorie sau de la dispozitivele de intrare/ieire, i ies date la efectuarea unei scrieri. Magistrala este de tip tri-state: pe lng cele dou niveluri logice active (0 i 1), fiecare linie poate avea o stare inhibat de nalt impedan. Aceast stare este folosit atunci cnd magistrala de date trebuie cedat de ctre microprocesor unei alte componente din calculator, de exemplu efectuarea unui transfer de date direct de la un dispozitiv de intrare/ieire n memorie i invers, aciune care se numete DMA (Direct Memory Acces). Biii de valoare 1 vor aprea cu niveluri de tensiune ridicat (35 V), iar cei de valoare 0 se vor identifica prin tensiuni sczute (0 0,8 V). Cnd vei cumpra un calculator trebuie s tii pe ci bii este magistrala de date a procesorului, cu ct este mai lat cu att viteza calculatorului este mai mare. Urmtorul tabel exemplific cteva cazuri: Procesor 8088 286 386 SX 486 Pentium I Pentium IV 3.2 Mrime registre interne 16 bii 16 bii 32 bii 32 bii 32 bii 128 bii Lime magistral date 8 bii 16 bii 16 bii 32 bii 64 bii 64 bii Lrgime magistral adrese 20 bii 24 bii 32 bii 32 bii 64 bii 64 bii Numr tranzistoare 29 000 134 000 257 000 1 600 000 3 100 000 5 500 000

Magistrala de adrese la procesoarele Z 80 80x86

Cele 16 linii A0 A15 i au originea n contorul de program, PC, al microprocesorului, i formeaz mpreun magistrala de adrese. Aceasta este unidirecional, adic adresele ies din microprocesor pentru a fi transmise la circuitele de memorie i cele de intrare/ieire ale calculatorului. Cele 16 linii de adres permit adresarea a 216=26*210=64 Ko de memorie RAM.

73

Arhitectura sistemelor de calcul

Pentru adresarea dispozitivelor de intrare/ieire se decodific, de obicei, octetul inferior al registrului de adrese A0 A7, putndu-se astfel lega 256x2 dispozitive de intrere/ieire. Magistrala este de tip tri-state: pe lng cele dou niveluri logice active (0 i 1), fiecare linie poate avea o stare inhibat de nalt impedan. Aceast stare este folosit atunci cnd magistrala de adrese trebuie cedat de ctre microprocesor unei alte componente din calculator. Biii de valoare 1 vor aprea cu niveluri de tensiune ridicat (35 V), iar cei de valoare 0 se vor identifica prin tensiuni sczute (0 0,8 V). 3.3 Magistrala de comenzi la procesoarele Z 80 80x86

Acest nume este un nume generic, deoarece spre deosebire de celelalte dou magistrale, n care liniile fiecreia aveau semnificaii similare, magistrala de comenzi este reuniunea unor semnale individuale de intrare sau de ieire din microprocesor, avnd fiecare un rol aparte. Aceste semnale se clasific n trei grupe : semnalul de tact semnale de comand semnale de stare Semnalul de tact ( ) Este un semnal digital i constituie elementul motor al microprocesorului. Toate evenimentele interne ale microprocesorului sunt sincronizate cu acest semnal. Deoarece viteza de execuie a instruciunilor este direct proporional cu frecvena tactului , interesul este ca semnalul de tact s aib frecvena ct mai mare. Fiecare instruciune executat de microprocesor dureaz un numr ntreg de taci. Semnale de comand Sunt semnale generate de ctre microprocesor cu ajutorul crora, circuitul de comand al microprocesorului dirijeaz activitile din interiorul calculatorului. Aceste semnale sunt descrise n continuare. M1 (Machine cycle 1) - Apare ori de cte ori microprocesorul citete din memorie codul unei instruciuni, operair numit fetch. MREQ (Memory REQuest) cerere de acces la memorie. Se activeaz ori de cte ori microprocesorul dorete s efectueze un acces la memorie, fie pentru citirea, fie pentru nscrierea ei. RD (ReaD citete). Este activat atunci cnd microprocesorul execut citirea unui octet, din memorie sau de la un dispozitiv de intrare. Celula de memorie sau dispozitivul de intrare va transfera la apariia acestui semnal coninutul lui pe magistrala de date. WR (Write scrie). Este activat atunci cnd microprocesorul urmeaz s scrie un octet, n memorie sau la un dispozitiv de ieire. Microprocesorul va depune pe magistrala de date datele transferate.

74

Arhitectura sistemelor de calcul

IORQ (Input/Output ReQuest cerere de acces la dispozitivul de intrare/ieire). Acest semnal este nsoit de unul dintre semnalele RD sau WR. RFSH (ReFreSH remprosptare). Se genereaz n ciclul de remprosptare al memoriilor dinamice. HALT (Halt oprete). Oprirea microprocesorului. n realitate microprocesorul execut instruciuni NOP (No OPeration), pentru a asigura remprosptarea unei eventuale memorii dinamice din sistem. BUSAK (BUS AcKnowledge acceptarea cererii de magistral). Este un semnal prin care microprocesorul confirm acceptarea unei cerei de cedare a magistralelor. Semnale de stare Semnalele de stare sunt semnalele prin care microprocesorul preia comenzi de la celelalte componente din sistem. WAIT (Ateapt) este un semnal emis de o component, celul de memorie sau dispozitiv de intrare/ieire, prin care aceasta semnalizeaz microprocesorului c merge prea repede, i el dispozitivul, nu poate ine pasul. Semnalul WAIT adapteaz viteza de rulare a microprocesorului la posibilitile celorlalte componente din sistem. INT INTrerupt (ntrerupere). Este un semnal dat de un element din sistem, de obicei un dispozitiv de intrare/ieire, prin care se solicit participarea microprocesorului la rezolvarea unei situaii noi, create de apariia uni eveniment extern. Semnalul INT va declana abandonarea programului n curs de execuie i microprocesorul va apela un program care trateaz cerea de ntrerupere. Cererea de ntrerupere este acceptat numai dup terminarea ultimului ciclu main al instruciunii m curs de execuie. NMI (Non Mascable Intrerupt ntrerupere nemascabil). Dac cererile de ntrerupere semnalizate cu INT pot fi desconsiderate, prin inhibarea pe cale software a sistemului a sistemului de ntreruperi, cererile sosite pe linia NMI vor fi obligatoriu executate, n cel mai scurt timp posibil (la terminarea instruciunii n curs de execuie). BUSRQ - (BUS ReQuest cerere de magistral). n acest caz microprocesorul termin ciclul main n curs de execuie, dup care emite semnalul de acceptarea cererii, BUSAK, i va pune magistralele n stare de nalt impedan (cedate). Dispozitivul care a suspendat microprocesorul va prelua comanda magistralelor din calculator. Aceast posibilitate poate fi folosit de un dispozitiv pentru accesul direct la memorie (DMA). n acest caz un se poate face un transfer mult mai rapid ntre un echipament periferic i memorie, dect o poate face microprocesorul cu ajutorul unui program. RESET (Reiniializare). Acest microprocesorul se blocheaz. semnal se folosete atunci cnd

75

Arhitectura sistemelor de calcul

Caracteristicile cele mai importante ale unei magistrale sunt: limea magistralei, arbitrarea ei i operarea asupra ei. Test de autoevaluare No. 10 Realizai o procedur de scriere pe ecran i respectiv una de citire a datelor de la tastatur, n limbaj de asamblare. Tem de reflecie Studiai semnalele de stare i semnalele de comand ale procesoarelor RISC. Scriei rspunsul n spaiul liber din chenar.

3.4

Limea magistralei

Cu ct o magistral are mai multe linii electrice cu att se pot transporta mai multe date. De exemplu, dac o magistral are n linii de adres atunci procesorul o poate folosi pentru a adresa 2n locaii de memorie diferite. n mod similar, cu ct o magistral este mai lat cu att se pot transmite mai multe pachete de date deodat. Pe o magistral pot fi transportate deodat att adrese ct i date. O alt opiune este magistrala multiplexat (multiplexed bus), n care n loc s avem separat liniile de adrese i cele de date, toate liniile vor fi folosite alternativ pentru adrese respectiv date. Operaii asupra magistralei

3.5 Efectuarea unui transfer de date direct de la un dispozitiv I/O n memorie i invers se numete DMA (Direct Memory Access).

Aa cum am vzut n paragrafele anterioare una dintre operaiile asupra magistralei este generarea ciclului su. Alte operaii sunt: transmiterea adreselor i a datelor ; transmiterea comenzilor de la master la slave i invers; strile magistralei : magistrala poate fi de tip tri-state (trei stri), pe lng cele dou niveluri logice active (0 i 1), fiecare linie poate avea o stare inhibat de nalt impedan. Aceast stare este folosit atunci cnd magistrala trebuie cedat de ctre procesor unui alt echipament, de exemplu efectuarea unui transfer de date direct de la un dispozitiv I/O n memorie i invers, aciune care se numete DMA (Direct Memory Access).

76

Arhitectura sistemelor de calcul

PROCESOR

CACHE

Magistrala memorie-dispozitive de I/E

Memorie principal

Unitate de contro I/E

Unitate de contro I/E

Unitate de contro I/E

Disc

Disc

Afiaj grafic

Reea

Figura 6.4 Evidenierea magistralei memorie-dispozitive de I/E. Unele echipamente care se ataeaz unei magistrale pot funciona n dou moduri : master sau slave. Echipamentele active ataate magistralei care pot iniia un transfer pe magistral se numesc master. Echipamentele pasive (care ateapt doar cereri) se numesc slave. 3.6 Transferul de date ntre dispozitivele de I/O, procesor i memoria principal. ntr-un calculator dispozitivele de I/O (mouse, floppy discul, hard discul, imprimanta, monitoru, etc) comunic cu memoria principal sau cu procesorul, prin magistrala de I/O. Aceste magistrale sunt de tipuri diferite i formeaz o interfa ntre echipamentele active ale unui calculator. Avantajele folosirii magistralelor sunt costul redus i flexibilitatea. Prin flexibilitate se nelege proiectarea de magistrale la care se pot aduga dispozitive noi de I/O, acestea putnd fi schimbate ntre sisteme de calcul ce folosesc acelai tip de magistral. Dezavantajul folosirii magistralelor const n faptul c fluxul de date i viteza de transmisie a lor este limitat de limea respectiv frecvena magistralei. Pentru a reduce impactul acestui dezavantaj se folosesc mai multe tipuri de magistrale. n mod tradiional exist trei clasificri : magistrala procesor-memorie magistrala de I/O magistrala procesorului Magistralele procesor-memorie sunt scurte i lucreaz, de obicei, la o frecven apropiat de frecvena de lucru a memoriei principale i se folosesc pentru transferul informaiilor ntre procesor i memoria RAM a sistemului. Transferul

77

Arhitectura sistemelor de calcul

datelor pe aceast magistral este controlat de controlorul de memorie. Limea magistralei de memorie este ntotdeauna egal cu limea magistralei procesorului i deci cu dimensiunea registrelor procesorului. Magistralele de I/O au o lungime mai mare iar la ele se pot conecta diferite dispozitive de I/O care pot avea lungimi de band i frecvene de transmisie respectiv recepie diferite. De obicei acestea nu sunt conectate direct cu memoria sau procesorul, ci folosesc o magistral de tip fund de sertar (local) au aceast denumire deoarece sunt cablate pe placa de baz, i cu ajutorul unor conectori (socluri) fac legtura cu dispozitivele de I/O sau cu alte tipuri de magistrale (SCSI, de exemplu). Componentele de I/O pot fi conectate la magistrala de I/O a sistemului prin conectori sau sloturi de extensie. Exist mai multe tipuri de magistrale de I/O. Pe parcursul evoluiei magistralelor de I/O sa inut cont de mbuntirea vitezei i lrgimii magistralei. Astfel, mgistrala ISA(Industry Standard Arhitectere) a fost construit pe 8 bii la 4,77 MHz dup care sa mbuntit la 16 bii i respectiv 32 de bii pe 8.33 MHz. La ora actual este folosit pe scar larg magistrala PCI (Peripheral Component Interconnect bus) cu o vitez de transfer de 33 MHz pe secund la o lime de 32 de bii i varianta PCI 2.2 cu o vitez de 66 MHz pe 64 de bii. Viteza magistralei poate fi exprimat i n mega octei (Mo). Exemple de calcul: ISA pe 8 bii: 4,77 Mhz x 8 bii = 4,77 x 106 bytes/ s ISA pe 32 de bii: 8,33 MHz x 32 bii = 8,33 x 106 x 4 bytes/s PCI pe 64 de bii: 66 MHz x 64 bii = 66 x 106 x 8 bytes/s Magistrala fund de sertar (local bus) este proiectat pentru a permite procesoarelor, memoriei i dispozitivelor de I/O s coexiste pe o singur magistral. Urmtoarele figuri reprezint modaliti de conectare prin magistrale a componentelor principale ale unui calculator:

Magistral local Procesor

Memorie RAM

I/O

I/O

I/O

(a)

78

Arhitectura sistemelor de calcul

Procesor

Magistral procesor-memorie

Memorie RAM

Controler de magistral

Controler de magistral

Controler de magistral

Magistral de I/O

Magistral de I/O

Magistral de I/O

(b)

Magistral procesor-memorie Procesor

Memorie RAM

Controler de magistral

Controler de magistral

Magistral de I/O

Magistral local

Controler de magistral

Magistral de I/O

(c) Test de autoevaluare No. 11 1. Cte citiri din memorie se efectueaz pentru citirea instruciunii DDHCBH59HC6H, pe un calculator cu magistrala de memorie de 8 bii ? a. 4 b. 1 c. 2 d. 3 2. Care este timpul de transmisie a datei 1234567811111111h pe o magistral de 66 Mhz i lrgimea de 1byte ?

79

Arhitectura sistemelor de calcul

a. b. c. d.

121,21 ns 66 ns 242,42 ns 1056 ns

3. S se determine cte adrese de memorie pot fi accesate deodat dac avem o magistral de adrese de 64 de bii la 100 Mhz i o memorie virtual cu adrese de 16 bii. a. 4 b. 8 c. 16 d. 32

Procesor 66Mhz

33 biti 33 Mhz

Controler de intrare de I/O magistral PCI

33 bit 33 Mhz

Controler de intrare de I/O magistral ISA

16 biti 8 Mhz 33 biti 33 Mhz

Sloturi ISA

Sloturi PCI

Figura 6.5 Un ansamblu de dispozitive de I/O. Magistrala procesorului asigur comunicaia adreselor i a datelor ntre procesor, magistrala I/O, memoria RAM i memoria cache. Acest lucru se face cu ajutorul unui controler de magistral. Viteza de lucru a magistralelor externe are o frecven mult mai mic dect frecvena procesorului. De exemplu, ntr-un sistem Pentium III care are un procesor ce lucreaz la frecvena de 800 Mhz, iar magistrala procesorului poate fi 66,6 Mhz, 100 Mhz sau 133 Mhz. n general frecvena de lucru a procesorului este un multiplu a frecvenei magistralei. Pentru calculul vitezei de transmisie a datelor pe magistralele externe se multiplic limea magistralei (32 sau 64 de bii) cu frecvena magistralei (66,6 Mhz, 100 Mhz sau 133 Mhz).

80

Arhitectura sistemelor de calcul

Exemple: 66 Mhz x 64 bii = 66 x 8 x 106 de bytes / secund 133 Mhz x 64 bii = 133 x 8 x 106 de bytes / secund Aceasta reprezint viteza maxim ce poate fi atins. n realitate viteza este mai mic datorit vitezei memoriei, a perifericelor i alte componente mai lente. Un controler de magistral este un dispozitiv electronic care gestioneaz transferul de date ntre magistrale de tipuri diferite. Acesta are drept sarcin rutarea semnalelor de control, i adaptarea blocurilor de date la limea magistralelor precum i stabilirea frecvenelor magistralelor. Pentru a nelege mai bine funcionarea unei magistrale s considerm o aciune tipic acesteia, i anume, transmiterea sau recepionarea datelor. O astfel de aciune include dou pri : transmiterea adresei i recepionarea sau trimiterea datelor. O aciune de citire transfer datele din memorie la procesor sau la un dispozitiv de intrare. O aciune de scriere scrie datele n memorie sau la un dispozitiv de ieire. Urmtoarea figur prezint paii ce sunt parcuri ntr-o operaiie tipic de ieire, n care datele sunt citite din memorie i trimise dispozitivului. Poriunile active ale magistralei i memoriei sunt desenate punctat, iar operaiile de citire sau scriere sunt prezentate prin umbrire. Primul pas este iniierea unei citiri din memorie. Liniile de control semnaleaz o cerere de citire memoriei, n timp ce liniile de date conin adresa:
Linii de control

Memorie
Linii de date

Procesor

Discuri

n pasul al doilea memoria acceseaz datele:


Linii de control

Memo rie
Linii de date

Procesor

Discuri

n al treilea pas memoria treansfer datele folosind liniile de date ale magistralei, i, pe liniile de control semnaleaz dispozitivului de I/O c datele sunt disponibile. Dispozitivul memoreaz datele n momentul cnd acestea apar pe magistral:

81

Arhitectura sistemelor de calcul

Linii de control

Memo rie
Linii de date

Procesor

Discuri

Urmtoarea figur prezint paii ce sunt parcuri ntr-o operaiile tipic de ieire: n primul pas se indic memoriei, prin liniile de control, o cerere de scriere n timp ce liniile de date conin adresa:
Linii de control

Memorie
Linii de date

Procesor

Discuri

Al doilea pas are loc atunci cnd memoria este pregtit pentru a fi scris, fapt semnalat dispozitivului care transfer apoi datele:
Linii de control

Memorie

Procesor

Linii de date

Discuri

3.7

Standarde de magistrale ISA (Industry Standard Arhitecture) este o magistral de I/O pe 16 bii la 8 Mhz. EISA (Extended Industry Standard Arhitecture) opereaz la 8,22 respectiv 10 Mhz pe 32 de bii i reprezint o mbuntire a magistralei ISA. Magistrala PCI (Peripheral Component Interconect interconectare a componentelor periferice) ncorporeaz tehnologia Plug and Play, i este o magistral local p e 3 2 d e bii cu frecven e n r te 3 3 Mh z i 1 3 3Mh z . Magistrala PCI servete o varietate de dispozitive : placa grafic, placa de reea, placa de sunet, etc. Front - Side Bus (FSB) este o magistral conceput de firma Intel, care face legtura dintre CPU i memorie. n general, viteza magistralei FSB conduce la o procesare mai rapid a datelor i deci calculatorul este mai rapid. Frecvena de lucru a procesorului este determinat prin multiplicarea vitezei magistralei FSB. De exemplu, un procesor cu 550 de Mhz poate utiliza o magistral FSB de 100 Mhz. Acest lucru nseamn : 550 Mhz = 5,5 * 100

82

Arhitectura sistemelor de calcul

Mhz. Multe componente ale calculatorului incluznd magistrala PCI i AGP ruleaz la o vitez derivat din viteza magistralei FSB. La procesoarele Pentium 4 se folosete o tehnologie FSB format din patru magistrale FSB de aceeai dimensiune i frecven. Astfel, dac un calculator are o magistral FSB quad pumped la 800 Mhz asta nseamn c este format din patru magistrale FSB la 200 Mhz. De exemplu, rata de transfer pe magistrala FSB cu o frecven de 100 Mhz va fi : 8 bytes * 100 milioane /s * 4 = 3200 bytes /s. Pentru o magistral FSB cu 200 Mhz * 4 = 800 Mhz vom avea : 8 bytes * 200 milioane/s * 4 = 6400 bytes/s. Magistrala AGP (Accelerated Grafics Port Port de Grafic Accelerat) este o magistral nou ce face legtura direct ntre memoria RAM i adaptorul grafic. Deoarece servete un singur dispozitiv (adaptorul grafic) este considerat un port. Prima frecven mai mare fa de bus-ul PCI a fost frecvena AGP-ului, care este de 66 Mhz, ceea ce a condus la o rat de transfer superioar de 266 MB/s pentru modelul AGP 1x (numai prin modificarea frecvenei de funcionare). Limea de band a crescut la 533 MB/s n cazul clasicului AGP 2x prin mbuntirea sistemului de transfer, acesta realizndu-se pe ambele fronturi ale semnalului de ceas (cresctor i descresctor), similar memoriei DDRAM fa de SDRAM. Urmtorul pas a fost dublarea informaiei n acelai tact de ceas, de la 8 bytes la 16 bytes i astfel a luat natere standardul AGP 2.0 sau, altfel zis, AGP 4x, ce se bucur de o lime de band de 1,07 GB/s. n prima faz, s-a vehiculat ideea folosirii suplimentului de lime de band pentru texturile obiectelor 3D. Astfel, acceleratorul grafic 3D utilizeaz textura AGP, care permite cipurilor 3D s depoziteze texturi de dimensiuni mari n memoria principal a sistemului, folosindu-le n procesul de randare (randarea este procesul de reprezentare virtual ct mai fidel a lumii reale, folosind tehnici de calitate 3D, manipularea culorilor i a umbrelor) direct de acolo, fr a le mai ncrca n memoria local video. Dar alte acceleratoare au profitat doar de limea mare de band, folosind AGP-ul ntr-un mod similar cu acceleratoarele grafice care folosesc bus-ul PCI. i chiar aceste acceleratoare grafice sunt cele care s-au dezvoltat. Ca i caracteristic principal acestea au o mare cantitate de memorie video local. Natural aceast memorie este mult mai rapid dect memoria sistemului cnd vine vorba de stocat i de livrat texturi, deci nimeni nu a folosit vreodat textura AGP, dei aceasta este posibil i perfect aplicabil chiar i acum. Bine, i atunci la ce mai era necesar aceast mare lime de band a bus-ului AGP ? Rspunsul este simplu. ntreaga lime de band a bus-ului era folosit pentru a transfera date ntre procesor i cipul grafic. Acestea erau n primul rnd datele care conineau ntregul calcul al scenei, adic acel mare numr de triunghiuri prin care sunt definite chiar i obiectele rotunde dintr-o lume 3D. i a venit AGP 4x. Standardul AGP 4x aducea o nou perspectiv n procesul de randare 3D, optimiznd transferul datelor de tip triunghiuri (triangledata) al obiectelor complexe 3D. nainte ca procesul 3D s treac prin procesul cunoscut sub numele de transform and lighting, obiectele ce fac subiectul acestei scene trebuie descrise motorului de randare. Primul accelerator 3D ce integra tehnologia T&L putea procesa o cantitate impresionant de triunghiuri, dar nainte de a ncepe, aceste triunghiuri trebuiau transferate acceleratorului, evident folosind bus-ul AGP. nc de la apariia standardului AGP 2x, probleme arztoare a fost limea de band a bus-ului AGP, ce nu putea fi folosit complet dac sistemul nu

83

Arhitectura sistemelor de calcul

dispunea de o lime total de band mai mare. Asta deoarece memoria principal este accesat permanent de mai multe dispozitive-cheie, cum ar fi procesorul, componentele PCI, unitile DMA i bineneles portul AGP. Astfel c bus-ul AGP 4x s se simt n largul su, este nevoie cel puin de memorii PC 133, ce ofer (teoretic) exact aceeai lime de band, adic 1066 MB/s. Aceast lime de band poate fi oferit (de exemplu) de memoriile de memoriile DDRAM 266, ce asigur transfer de 2,1 MB/s. Fr aceste memorii rapide, nici un accelerator 4x nu se va lsa convins s lucreze la capacitatea lui real. Acceleratoarele ce apar n zilele noastre prezint fiecare o serie de faciliti care mai de care mai sonore : compatibilitate DirectX 9, 128 MB DDRAM i nu n ultimul rnd, AGP 8x.
Procesor Pentium 4

RAM AGP 8x Controler magistral local Textura 1 Textura 2 264 Mb/s Magistrala LAN 10/100 Unitate de disc

Memorie video

Figura 6.6 Exemplificarea funcionrii AGP-ului.

84

Arhitectura sistemelor de calcul Magistral pentru memoria intermediar Memorie intermediar nivel 2

Magistral local

Magistral pentru memorie

UCP

Punte PCI

Memorie principal Magistral PCI

SCSI

USB

Punte ISA

Disc IDE

Adaptor grafic Monitor

Conector PCI disponibil

Mouse

Tastatur

Magistral ISA

Modem

Plac de sunet

Imprimant

Conector PCI disponibil

Figura 6.7 magistralele unui sistem Pentium II. Dac ne uitm cu atenie n specificaiile standardului AGP 8x ne ameete limea de band a bus-ului : 2,1 GB/s, realizat prin dublarea datelor ntr-un ciclu de ceas, de la 16 bytes/clock cycles (n cazul AGP 4x) la 32. Frecvena bus-ului a rmas n continuare 66 Mhz. 3.8 Lucrare de verificare Nr.6

1. Care este timpul de transmisie a datei 1234567811111111h pe o magistral de 100 Mhz i lrgimea de 16 bii? a. b. c. d. 40 ns 160000000000 ns 100 ns 16 ns

2. S se determine cte adrese de memorie pot fi accesate deodat dac avem o magistral de adrese de 128 de bii la 100 Mhz i o memorie virtual cu adrese de 16 bii. a. 8 b. 8 c. 16 d. 32 3. Care este timpul de transmisie a datei 1234567811111111h pe o magistral de 400Mhz i lrgimea de 64 bii? a. 2,5 ns b. 660000000000 ns c. 528 ns d. 528* 10-6 ns

85

Arhitectura sistemelor de calcul

4. S se determine cte adrese de memorie pot fi accesate deodat dac avem o magistral de adrese de 16 bii la 100 Mhz i o memorie virtual cu adrese de 16 bii. b. 1 c. 8 d. 16 e. 32 3.9 Bibliografie 1. Andrew S.Tanenbabaum, Organizarea structurat a calculatoarelor. Ed. Agora 1999. 2. David A. Patterson, John L. Hennessy, Organizarea i proiectarea calculatoarelor. Ed. All 2002. 3. David Harris, Sarah Harris, Digital Design and Computer Architecture, Morgan Kaufmann (March 16, 2007).

86

Arhitectura sistemelor de calcul

Cap. 4 Memoria secundar


Obiective: Dup studiul acestui capitol, studentul va avea cunotine suficiente pentru a fi capabil: s neleag: cum este proiectat i cum funcioneaz un HDD, FDD, CD+ROM, DVD. Memoria RAM nu poate stoca date foarte mari (de ordinul Gigabiilor) i nu este permanent (la oprirea calculatorului datele din memoria RAM se pierd). Pentru pstrarea datelor mari (biblioteci, filme, baze mari de date, ) se folosesc discurile magnetice care au capacitatea cuprins ntre 10 Gb i 100 Gb, CD-ROMurile care au capacitatea ntre 650 700 Mb, DVD-uri cu capacitatea ntre 4,7 i 17 Gb i nu n ultimul rnd benzile magnetice. Acestea vor fi prezentate n capitolele care urmeaz. n figura urmtoare este prezentat o ierarhie de memorii:

Figura 7.1 Ierarhia memoriilor dintr-un calculator modern. n vrful ierarhiei se situeaz registrele CPU, dup care urmeaz memoria cache, memoria principal i discurile magnetice sau optice. ncepnd de la vrful ierarhiei nspre baz timpul de acces se mrete, capacitatea de stocare crete i numrul de bii per dolar este din ce n ce mai mare. 4.1 Discurile magnetice

Un disc magnetic este alctuit dintr-unul sau mai multe platane de aluminiu cu un nveli magnetizabil. La nceput aceste platane aveau diametrul de aproape 5 0 cm, dar la o ra actual su n t cuprinse ntre 3 i 12 cm. Un cap ce conine o bobin de inducie se deplaseaz foarte aproape de suprafa, sprijinindu-se pe o pern de aer, excepie fac dischetele unde capul de citire atinge suprafaa. La trecerea unui curent negativ sau pozitiv prin cap, acesta magnetizeaz suprafaa de dedesubtul lui, aliniind particulele magnetice la dreapta sau la stnga n funcie de polaritatea curentului. La trecerea capului peste o suprafa magnetizat un curent

87

Arhitectura sistemelor de calcul

pozitiv sau negativ este indus n cap, fcnd astfel posibil citirea biilor memorai anterior. Astfel, la rotirea platanului, pot fi scrii sau citii biii. Geometria unei piste a discului este prezentat n figura de mai jos.

Figura 7.2 O poriune a unei piste a discului. Sunt prezentate dou sectoare. Secvena circular de bii scris la o rotaie complet a discului 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), care poate corecta erorile de scriere sau citire de bii. Sectoarele consecutive sunt separate printr-un mic spaiu ntre sectoare (intersector gap). Aceast geometrie este activ n urma formatrii discului (hard-discului). Formatarea este pregtirea unui hard-disc pentru a putea fi citit sau scris de ctre calculator. Este verificat suprafaa discului pentru a se descoperi eventualele defecte i se organizeaz un sistem de gestionare a informaiei. La formatare sunt mprite pistele n sectoare, sunt plasate informaiile de identificare nainte i dup fiecare sector, este umplut fiecare sector cu date nule (de obicei F6), i sunt marcate pistele defecte. Unii fabricani dau capacitatea discului neformatat (ca i cnd fiecare pist ar conine doar date), dar o msurtoare mai cinstit este capacitatea dup formatare. Capacitatea unui disc formatat este n general mai mic cu aproximativ 15 % fa de capacitatea discului neformatat. Toate discurile au brae mobile care sunt capabile s se mite nainte i napoi, la diferite distane radiale fa de axul discului. La fiecare distan radial poate fi scris o alt pist. Pistele sunt deci o serie de cercuri concentrice fa de axul discului. Lrgimea unei piste depinde de dimensiunea capului i de acurateea cu care acesta poate fi poziionat radial. Discurile au ntre 800 i 2000 de piste pe centimetru, lrgimea pistei fiind ntre 5 i 10 microni (1 micron=1/1000 mm). Este important de reinut c o pist nu este un an spat fizic n suprafaa discului, ci pur i simplu un inel de material magnetizat, cu mici zone de protecie separndu-l de pistele anterioare i urmtoare. Densitatea liniar a biilor de-a lungul circumferinei pistei este determinat de puritatea suprafeei i de calitatea aerului. Discurile actuale ajung la densiti de 50 000 pn la 100 000 bii/cm. Astfel de discuri se numesc discuri Winchester. Majoritatea discurilor sunt constituite din mai multe platane suprapuse pe vertical, ca n figura de mai jos.

88

Arhitectura sistemelor de calcul

Cap de citire/scriere

Suprafaa 7 Suprafaa 6
Suprafaa 5

Suprafaa 4
Suprafaa 3 Suprafaa 1

Direcia de micare a braului

Suprafaa 2 Suprafaa 0

Figura 7.3 Un disc cu patru platane. Fiecare suprafa dispune de propriul bra i cap. Braele sunt sudate mpreun astfel c la deplasarea ntr-o nou poziie radial sunt mutate toate odat. Setul de piste dintr-o anumit poziie radial se numete cilindru (cylinder). Pentru a citi sau scrie un sector, braul trebuie s se deplaseze n poziia radial corect. Aceast aciune se numete cutare (seek). Timpii medii de cutare (ntre piste alese aleator) se situeaz n intervalul 5-15 msec, iar cutrile ntre piste consecutive dureaz sub 1 msec. Majoritatea discurilor se rotesc la 3600, 5400 sau 7200 RPM. Pentru mrirea vitezei de citire sau scriere a datelor discurile magnetice au o memorie rapid (de exemplu de 2Mb). Aceast memorie este similar funcional cu memoria cache. De altfel se mai numete i memorie cache a (controlorului) hard discului. Tem de reflecie Studiai istoria fabricaiei HDD-urilor ? Descriei principalele etape n spaiul liber din chenar.

Test de autoevaluare No. 10 1. Gsii mai multe formule de calcul a capacitii unui HDD 4.2 Discuri compact inscriptibile

Discul CD-ROM este un suport pe care sunt nmagazinate datele prin mijloace optice, care poate fi citit sau scris i care ofer o capacitate de 650 sau 700 MB, ceea ce nseamn aproximativ 333 000 de pagini de text, 74 sau 80 de minute de muzic. Primele CD-uri (cele neinscripionabile) erau pregtite cu ajutorul unui laser n infrarou, de mare putere, care realizeaz perforaii de 0.8 microni diametru ntrun disc acoperit cu sticl. Dup acest disc model este turnat o matri, cu denivelri n locul perforaiilor. Rini policarbonate topite sunt injectate n aceast matri pentru a forma un CD cu acelai aranjament al perforaiilor ca i modelul de sticl. Peste policarburi se depune un strat foarte subire de aluminiu

89

Arhitectura sistemelor de calcul

reflectorizant, acoperit cu un lac protector i n final o etichet. Depresiunile din stratul policarbonic se numesc caviti (pits), iar zonele nearse dintre caviti se numesc soluri (lands). Citirea se face cu ajutorul unei diode laser de mic putere, care trimite unde infraroii cu lungimea de und de 0.78 microni peste caviti i soluri, pe msur ce acestea defileaz prin dreptul ei. Laserul este proiectat pe partea policarbonat, astfel nct cavitile, fiind adnci cu un sfert din lungimea de und a laserului, vor reflecta lumina defazat cu jumtate din lungimea de und a luminii care se reflect de pe suprafaa nconjurtoare. Astfel se poate distinge cavitatea de un sol. Prin alternarea solurilor i a cavitilor, sunt create structuri specifice i transmise microprocesorului spre a fi traduse n date. Cavitile i solurile sunt aranjate ntr-o spiral continu lung de 5.6 Km. Spirala pornete de lng perforaie (centrul discului) i ajunge pn la o distan de 32 de mm de margine. Viteza de citire/scriere a datelor trebuie s fie constant. Prin urmare viteza de rotaie a CD-ului trebuie redus continuu odat cu deplasarea capului de citire dinspre interior spre exterior. n interior viteza de rotaie este de 530 RPM i scade la 200 RPM la exteriorul CD-ului. Aceast vitez depinde de unitatea de CD-rom. Astfel sau realizat uniti care citesc mai mult de 4 915 200 octei /sec. (32x). n figura urmtoare este prezentat structura unui CD-ROM simplu, iar n figura structura unui CD-ROM inscripionabil:
Spirala pe care sunt inscripionate

Bloc de date utilizator

Figura 7.4 Structura nregistrrii pe un CD. CD-R urile sunt discuri goale de 120 mm din policarbonai care au un an lat de 0.6 mm pentru a ghida laserul la scriere. anul are un traseu sinusoidal de 0.3 mm la o frecven de exact 22.05 Mhz pentru a furniza o reacie continu, astfel nct viteza de rotaie s poat fi monitorizat exact i corectat dac este nevoie. CD-R urile au un strat reflectorizant din aur (sau alte aliaje speciale). Se adaug un strat de vopsea special ntre policarbonat i stratul reflectorizant de aur. Se folosesc dou tipuri de vopsea: cianina i ftalocianina. Prima are culoarea verde iar cealalt culoarea galben portocalie. n starea iniial stratul de vopsea este transparent i las laserul s treac i s se reflecte n stratul de aur. Cu ajutorul fasciculului laser, la o putere mare de 8-16 mW, este lovit un punct de vopsea i ca urmare acesta se nclzete schimbndu-i structura molecular, devenind totodat un punct ntunecat. La citirea cu un fotodetector se sesizeaz o diferen ntre zonele ntunecate n care vopseaua a fost atins i cele transparente n care

90

Arhitectura sistemelor de calcul

vopseaua este intact. Aceast diferen este interpretat ca i diferena dintre soluri i caviti la CD-urile simple. Informaia pe un CD-ROM-urile este mprit n blocuri de date de cte 2048 de octei fiecare. Formatul standard a unui CD impune citirea a 75 blocuri de date pe secund. Prin urmare rata de transfer este de 75 x 2048 = 150 Ko/s. Aceast valoare reprezint viteza 1x pentru un CD-ROM. Dezavantajul discurilor CD-ROM este faptul c reprezint un suport de tip read only. n 1990, partea a II-a din standardul Orange book publicat de Philips a specificat caracteristicile i formatul unui disc CD inscriptibil, CD-R (CD recordable) CD-R estze numit de asemenea CD-WORM (CD Write Once Read Many) sau CD-WO (CD Write Once).

Figura 7.5 Seciune transversal printr-un CD-ROM i modul de citire laser. Unitile CD-R i suporturile utilizate de asemenea permit crearea discurilor CD audio sau de date n diferite formate, care pot fi citite de majoritatea unitilor audio sau CD-ROM, la un pre acceptabil. 4.3 Lucrare de verificare Nr. 7

1. S se determine care este rata de transfer la un CD-ROM cu viteza de 50x: a. 7500 kb/s b. 7500 Mb/h c. 7500 byte/s d. 150 byte/s 2. Ce capacitate are un HDD cu 16 capete, 59755 cilindri, 63 de sectoare/pist i 512 octei/sector ? a. 28, 712 Gb b. 29 410,664 Mb c. 3 011 650 kb d. 30 839 316 480 octei 3. S se determine care este rata de transfer la un CD-ROM cu viteza de 51x: a. 7650 kb/s b. 7500 Mb/h c. 7500 byte/s

91

Arhitectura sistemelor de calcul

d. 150 byte/s 4. Ce capacitate are un HDD cu 8 platane, 59755 cilindri, 63 de sectoare/pist i 512 octei/sector ? a. 28, 712 Gb b. 29 410,664 Mb c. 3 011 650 kb d. 30 839 316 480 octei 5. S se determine care este rata de transfer la un CD-ROM cu viteza de 50x: a. 7500 kb/s b. 7500 Mb/h c. 7500 byte/s d. 150 byte/s 6. Ce capacitate are un HDD cu 16 capete, 59755 piste/platan, 63 de sectoare/pist i 512 octei/sector ? a. 28, 712 Gb b. 29 410,664 Mb c. 3 011 650 kb d. 30 839 316 480 octei

4.4

Bibliografie

1. Andrew S.Tanenbabaum, Organizarea structurat a calculatoarelor. Ed. Agora 1999. 2. Marius Tomescu, Primii pai n lumea calculatoarelor. Ed. Albastr 2002.

92

S-ar putea să vă placă și