Documente Academic
Documente Profesional
Documente Cultură
CN 2
CN 2
Principii de proiectare
Introducere
Limbajul unui calculator = cuvinte + vocabular
Cuvintele -> instruciuni Vocabularul -> set de instruciuni
Operaiile hardware-ului
Orice calculator trebuie s fie capabil s efectueze operaii aritmetice: add a, b, c Exemplu: a = b + c + d + e
add a, b, c add a, a, d add a, a, e CONCLUZIE: Este nevoie de 3 instruciuni
Hardware-ul pentru implementarea unei operaii cu 3 operanzi este mai simplu dect hardware-ul necesar implementrii unei operaii cu un numr variabil de operanzi
Operaiile hardware-ului
Orice calculator trebuie s fie capabil s efectueze operaii aritmetice: add a, b, c Exemplu: a = b + c + d + e
add a, b, c add a, a, d add a, a, e CONCLUZIE: Este nevoie de 3 instruciuni
Hardware-ul pentru implementarea unei operaii cu 3 operanzi este mai simplu dect hardware-ul necesar implementrii unei operaii cu un numr variabil de operanzi
Operanzii hardware-ului
Operanzii instruciunilor aritmetice provin dintr-un numr limitat de locaii speciale denumite registre
Dimensiunea unui registru este de 32 bii => un cuvnt va avea 32 de bii Numrul de registre este limitat ntr-un calculator - 32 de registre generale
Notaii: $s0, $s1 registre folosite pentru variabile; $t0, $t1 registre temporare necesare compilrii unui program n instruciuni MIPS Exerciiu: Se d urmtoarea comand C: f = (g+h) - (I+j) Ce cod va produce un compilator C ? Soluie: add $t0, $s1, $s2 add $t1, $s3, $s4 add $s0, $t0, $t1
Structurile de date foarte mari: matricile i vectorii sunt inute n pstrate n memorie => necesitatea existenei instruciunilor care s realizez transferul datelor ntre memorie i registre INSTRUCIUNI DE TRANFER DE DATE
Instruciunea care deplaseaz datele din memorie ntr-un registru este numit LOAD Formatul instruciunii: Numele operaiei Registrul ce trebuie ncrcat Constant Registrul folosit pentru accesarea memoriei Exerciiu: A este un tablou de 100 de cuvinte, iar variabilele g i h sunt asociate cu registrele $s1 i $s2. Adresa de baz este n $s3. Cum se translateaz g=h+A[8] ?
Compilatorul aloc structurile de date loca iilor din memorie, apoi pun adresa corect de nceput n instruciunea de transfer de date. Cuvintele secveniale difer prin 4. Cuvntul n MIPS trebuie s nceap la o adres care este multiplu de 4: RESTRICIE DE ALINIERE Calculatoare pot folosi adresele celui mai din stnga octet - BIG END - ca adres a cuvntului, sau folosesc octetul cel mai din dreapta - LITTLE END Adresarea la nivel de octet afecteaz din nou indexarea tablourilor => offset -ul care trebuie adugat registrului de baz $s3 trebuie s fie 4x8=32 bi i pentru a selecta A[8] i nu A[8/4] Instruciunea complementar intsruciunii LOAD este instruciunea STORE (memoreaz)
Formatul instruciunii STORE este urmtorul: Nume operaie Registrul de memorat Offset-ul pentru selectarea elementului din tablou Registrul de baz
Exerciiu: Variabila h este asociat cu registrul $s2 I adresa de baz a tabloului A este n $s3. Detaliai A[12] = h + A[8] Memoriile actuale sunt foarte mari => adresa de baz a unui tablou este introdus ntr -un registru deoarece n u este loc suficient n zona rezervat pentru offset.
Reprezentarea instruciunilor
Instruciunile sunt pstrate n calculator ca o serie de semnale electronice nalte sau joase => pot fi reprezentate ca numere
op rs rt rd shamt funct
OPCODE registru surs pentru primul operand registru surs pentru al doilea operand registrul operandului de destinaie ce primete rezultatul operaiei numrul deplasrilor selecteaz varianta specific a operaiei din cmpul op
Instruciunea de tip R
Instruciunea de tip I
Folosirea mai multor tipuri de instruciuni => complicarea hardware-ului, dar putem reduce complexitatea dac pstrm formate asemntoare
PRINCIPII DE BAZ
Instruciunile sunt reprezentate ca numere Programele pot fi pstrate n memorie pentru a putea fi citite/scrise precum numerele
INSTRUCIUNI DE DECIZIE
Ramificaii condiionale
beq
bne
Asamblorul este cel care calculeaz adresele pentru ramifica ii, calculeaz adresele instruciunilor de ncrcare/memorare
Exerciiu: Folosind registrele $s0 $s4 pentru cele 5 variabile de mai jos, s se detalieze codul generat pentru
Proceduri
Execuia unei proceduri presupune urmtorii pai Pune parametrii ntr-un loc unde pot fi accesai de ctre procedur Transfer controlul procedurii Obine resursele de memorie necesare procedurii Efectuare sarcin Pune valoarea rezultat ntr-un loc de unde poate fi accesat de ctre programul apelant ntoarce controlul la punctul de plecare
Registrele folosite:
patru registre de argumente n care se comunic parametrii dou registre de valori n care s ntoarc rezultatul un registru al adresei de ntoarcere
POP
Proceduri imbricate
Procedura A are in teriorul ei procedura B sau cazurile de recursivitate
Introducem n stiv toate registrele care trebuie pstrate dup apel. Apelantul introduce n stiv registrul adresei de ntoarcere $ra i orice registru salvat folosit de apelant.
Pointer-ul stivei $sp este corectat pentru a lua n evidennumrul registrelor puse n stiv. La ntoarcere, registrele sunt refcute din memorie, iar pointer-ul stivei este ajutat.
Proiectarea UAL
Operaii logice cu coresponden direct n hardware AND c=a*b SAU c=a+b INV c = not a MUX dac d==0, c=a altfel c=b Unitatea logic pentru 1 bit liniile albastre sunt linii de comand
Hardware-ul rezultat este foarte simplu => cc2 standard universal pentru aritmetica numerelor ntregi
Cum se poate modifica figura alturat astfel nct s implementm ramificarea condiional ?
Sumatorul este implementat cu ajutorul unui CLA - Carry Look Ahead prezentat la CN 1
Operaiile de nmulire/mprire inclusiv virgula mobil au prezentate n CN 1
Calea de date i de control Durata perioadei de ceas precum i numrul de cicluri/instruciune sunt date de implementarea procesorului.
Ne propunem implementarea urmtoarelor instruc iuni instruciuni de referire a memoriei - ncrcare/memorare Instruciuni aritmetice i logice - add, sub, and, or i slt Instruciunile de ramificaie la egal i de salt
Indiferent de clasa instruciunii, primii pai de implementarea aunei instruciuni sunt la fel: se va trimite memoriei PC-ul i se va extrage instruciunea din memorie Se citesc 1 sau 2 registre - vom folosi cmpurile instruc iunii pentru selectarea registrelor
Dac instruciunea este de tip aritmetic sau logic => rezultatul din UAL trebuie scris ntr-un registru Dac operaia este de ncrcare/memorare => rezultatul UAL va fi o adres Pentru ramificaii vom folosi ieirea UAL n determinarea adresei urmtoarei Instruciuni de executat. Este necesar pentru aceasta s introducem o logic de control
Extragem instruciunea din memorie Incrementm CP-ul cu 4 pentru Trecerea la instruciunea urmtoare
Este necesar o unitate pentru a extinde semnul cmpului de deplasare din instr.
Realizarea cii de date - instruciunea beq Instruciunea este format din 2 registre care sunt comparate pentru egalitate i o deplasare de 16 bii beq $t1, $t2, offset
n vederea implementrii acestei instruc iuni trebuie determinat adresa obiectiv pentru ramificaie => PC + cmpul de deplasare al instruc iunii cu semnul extins Particulariti: 1. Baza pentru calculul adresei de ramifica ie este adresa instruciunii care urmeaz ramificaiei => PC+4 valoarea ca baz 2. Cmpul deplasrii din instruc iune trebuie deplasat stnga cu 2 bi i deoarece deplasarea este la nivel de cuvnt => cre te domeniul efectiv al cmpului deplasrii cu un factor de 4.
Realizarea cii de date - instruciunea beq Operanzii sunt egali => adresa obiectiv pentru ramificaie devine noul PC
Trebuie realizate 2 operaii: 1. Calcularea adresei obiectiv pentru ramifica ie 2. Compararea coninutului registrelor
Obiectiv final - calea de date pentru execuia ntr-un singur ciclu de ceas
Controlul UAL UAL are trei intrri de control din care folosite sunt 5 000 I 001 SAU 010 + 110 111 setare la mai mic dect Modalitatea de implementare - utilizm 2 bii (OpUAL) i cei 6 bii ai codului funciunii
OpUAL 00 00 01 Operaia ncrcare cuv Memorare cuv Ramificaie la egal Cmpul funciunii xxxxxx xxxxxx xxxxxx Aciunea UAL adunare adunare scdere Intrare de control UAL 010 010 110 etc
funct(5-0)
2 (31-26)
adresa (25-0)
Calcularea PC-ului obiectiv cei 4 bii MSB vin de la PC+4; cmpul imediat de 26 bii ai instruciunii de salt; cei 2 bii inferiori ai unei adrese de salt sunt ntotdeauna 00
n cazul proiectrii cu un singur ciclu de ceas, perioada ceasului trebuie s aib aceeai durat pentru fiecare instruciune => ciclul de ceas este determinat de cea mai lung cale posibil prin ma in Cazul cel mai frecvent nu are o execu ie rapid Fiecare unitate funcional poate fi utilizat o singur dat ntr -un ciclu de ceas => repetarea un itilor funcionale => creterea preului implementrii
Metode alternative :
ntr-o implementare cu mai multe cicluri, fiecare pas al execu iei va necesita o perioad de ceas. Unitatea funcional este utilizat mai mult dect o singur dat pe instruc iune utilizat evident n cicluri de ceas diferite Acestea sunt avantajele majore ale implementrii cu mai multe cicluri de ceas
La finalul unui ciclu de ceas toate datele care sunt folosite n ciclurile urmtoare trebuie memorate n elemente de stare
Datele folosite de instruciunile urmtoare ntr-un ciclu ulterior de ceas vor fi memorate n elementele de stare vizibile programatorului.
Datele folosite de aceeai instruciune ntr-un ciclu ulterior de ceas trebuie memorate n registrele suplimentare
SE PRESUPUNE
Durata ciclului de ceaspoate deservi cel mult: un acces la memorie un acces la fiierul de registre 2 citiri i o scriere o operaie UAL
Folosim mai multe uniti funcionale n comun, deci trebuie adugate multiplexoare Exp: Avem o singur memorie att pentru date ct i pentru instruciuni PC i OpUAL Folosim un singur UAL n loc de 3 ca n cazul implementrii cu un singur ciclu de ceas, deci vom avea urmtoarele schimbri
un multiplexor suplimentar adugat primei intrri n UAL multiplexorul celei de-a doua intrri n UAL din MUX2 se transform n MUX4
CE AM OBINUT ?
CE NU AM IMPLEMENTAT ?
ramificaiile
salturile
ieirea UAL PC + 4 registrul EUAL cel care memoreaz adresa obiectiv pentru ramifica ie evident dup determinarea sa
cei 26 de bii inferiori ai lui IR deplasai spre stnga cu 2 poziii i concatenai cu cei 4 bii superiori ai PC-ului incrementat sursa pentru instruciunea de salt CONCLUZIE PC-ul va trebui scris att condiionat ct i necondiionat !!!
IR = Memorie(PC); PC = PC+4
Pasul de acces la memorie sau de terminare a instruc iunii de tip R O instruciune de ncrcare/memorare acceseaz memoria, iar o instruc iune aritmetic-logic i scrie rezultatul.
Valoarea citit din memorie este scris n MDR de unde va fi folosit n ciclul urmtor
MDR = Memorie (EUAL)
Definirea controlului
Instruciunile de tip R
MICROPROGRAMAREA
Microprogramarea este folosit pentru reducerea complexitii proiectrii controlului Fiecare microinstruciune definete setul de semnale de control ale cii de date care trebuie activate ntr-o singur stare dat Foarte important este succesiunea microinstruciunilor
Microinstruciunea poate fi privit ca o secven de cmpuri ale cror funciuni sunt corelate. Cum definim formatul microinstruciunii ?
Trebuie stabilite numrul de cmpuri dintr -o microinstruciune precum i semnalele de control afectate de fiecare cmp.
1. Formatul microinstruciunii trebuie ales astfel nct s se simplifice reprezentarea.
2. Trebuie ca scrierea microinstruciunilor consistente s fie imposibil Semnalele care nu sunt activate simultan niciodat pot folosi n comun acelai cmp
- specific operaia efectuat de UAL - surs operand 1 - surs operand 2 - scrire/citire a fiierului de registre i sursa valorii pt scriere - scrierea/citirea i sursa pentru memorie - specific scrierea PC-ului - modalitatea de alegere a urmtoarei instr.
1. Incrementarea microinstruciunii curente comportare secvenial (mod implicit) n cpul secve punem eticheta SEQ
2. Se transfer controlul la microinstruciunea care ncepe execuia urmtoarei instruciuni ciclu FETCH n cpul secven punem FETCH 3. Se alege urmtoarea microinstruciune pe baza intrrii n unitatea de control distribuie
Cmp Etichet Valori pt cmp Orice ir Funcie Folosit pentru specificarea etichetelor n controlul secvenelor de microcod. Etichetele terminate n 1 sau 2 sunt folosite pentru distribuie cu tabel de salt, indexat cu cod operaie
Control UAL
ADD
UAL adun
Cmp
SRC 1
Valori pt cmp
PC A
Funcie
PC intrare pentru UAL A folosit ca prim intrare n UAL
SRC 2
B 4
Extend Extshft
Ctrl registru
Read
Write ALU
Write MDR Memorie Read PC Read ALU
Scrie fiierul de registre folosind pt numrul registrului cmpul rt din IR, iar pentru dat coninutul EUAL
Scrie fiierul de registre folosind pentru numrul registrului cmpul rt din IR iar pentru dat coninutul MDR Citete memoria avnd ca adres PC-ul; scrie rezultatul n IR i MDR Citete memoria avnd ca adres EUAL; scrie rezultat n MDR
Write ALU
Cmp
Ctrl ScriePC
Valori pt cmp
ALU ALUOut-cond Jump address
Funcie
Scrie coninutul lui UAL n PC Dac ieirea UAL-Zero este activ, scrie n PC coninutul registrului EUAL Scrie n PC adresa de salt a instruciunii
Secven
seq
Fetch Dispatch i
Crearea microprogramului
Se vor eticheta instruciunile din microprogram cu etichete simbolice care pot fi folosite pentru specificarea coninutului tablourilor de distribuie.
Paii 1 i 2 din execuia unei instruciuni: Extragerea instruciunilor
Microprogramul pentru instruciunile de referire a memoriei Etch mem1 lw2 Write MDR sw2 Write ALU Ctrl UAL Add SRC1 A SRC2 Extend Read ALU Ctrl Reg Mem Ctrl ScriePC Secv Dispat ch 2 Seq Fetch fetch
Microinstruciunile pentru instruciunile de tip R Etch Ctrl UAL SRC1 SRC2 Ctrl Reg Mem Ctrl ScriePC Secv
B Write ALU
Seq fetch
Instruciunea de ramificaie
Etch BEQ1
SRC1 A
SRC2 B
Ctrl Reg
Mem
Ctrl ScriePC
Secv
De remarcat c avem doar o singur microinstruciune. DE CE ? Instruciunea de salt Etch Ctrl UAL SRC1 SRC2 Ctrl Reg Mem Ctrl ScriePC Secv
JUMP1
JUMP address
Fetch
PIPELINE
Pipeline-ul mbuntete performana prin creterea productivitii instruciunilor, nu prin micorarea timpului de execuie al unei instruciuni individuale
OBSERVAII Instruciunile au aceeai lungime => extragerea instruciunilor i decodificarea lor se poate face n doar dou etaje de pipe. Cpurile registrelor surs sunt localizate n acelai loc n cadrul instruciunii = > n etajul 2 putem ncepe citirea fiierului de registre n acelai timp n care hardware-ul determin instruciunea ce a fost extras. Operanzii din memorie apar numai n instruciunile de ncrcare i memorare = > putem utiliza etapa de execuie pentru calcularea adresei de memorie, iar accesul la memorie se efectueaz n etapa urmtoare.
Operanzii trebuie s fie aliniai n memorie = > data poate fi transferat ntre procesor i memorie ntr-o singur etap pipeline.
HAZARDURI PIPELINE
Evenimentul n urma cruia instruciunea urmtoare nu poate fi executat n urmtorul ciclu de ceas se numete hazard.
HAZARD SRUCTURAL
Hardware-ul nu poate suporta combinaia de instruciuni pe care dorim s le executm n acelai ciclu de ceas.
HAZARD DE CONTROL Apare din necesitatea de a lua o decizie pe baza rezultatelor unei instruciuni, n timp ce altele sunt n execuie SOLUII 1. Staionarea primul ciclu se va executa secvenial i apoi se va trece la execuia pipeline soluie viabil n practic dar prea lent n cazul pipe-urilor lungi
2. Predicia se presupune c ramificaiile nu vor reui = > c doar n cazul reuitelor pipe-ul va staiona.
CONCLUZII
1. Pipeline-ul crete numrul instruciunilor executate simultan i viteza cu care instruciunile sunt ncepute i terminate 2. Execuia pipeline nu reduce timpul necesar derulrii unei instruciuni individuale
Fiecare instruciune are propia sa cale de date; MI = memoria de instruciuni + PC-ul din etapa extragerii instruciunii REG = fiierul de registre + unitatea de extindere a semnului din etapa DI
Fig. 1
N C R C A R E A
Extragerea instruciunii instruciunea este citit din memorie (folosind PC) i este pus n registrul EI/DI Adresa lui PC este incrementat cu 4 i rescris n PC. Aceast adres este salvat n EI/DI n vederea folosirii ei ulterioare spre exp. urmeaz instruciunea beq.
Fig. 2
N C R C A R E A
Decodificarea instruciunii registrul EI/DI furnizeaz cmpul imediat de 16 bii cruia i se extinde semnul pn la 32 de bi i, i numerele registrelor pentru citirea celor dou registre.
N C R C A R E A
Execuia instruciunii instruciunea de ncrcare citete din registrul pipeline EI/DI coninutul registrului $t1 i cmpul imediat cu semnul extins i le adun cu ajutorul UAL-ului.
N C R C A R E A
Accesul la memorie instruciunea de ncrcare citete memoria de datefolosind adresa din registrul pipeline EX/MEM i ncarc data n registrul pipeline MEM/RS.
N C R C A R E A
Rescrierea fiierului de registre citirea datei din registrul pipeline MEM/RS pe care o scrie n fiierul de registre. CONCLUZIE orice informaie necesar ntr-o etap ulterioar de pipeline trebuie transmis ctre etapa respectiv prin registrele pipeline.
INSTRUCIUNEA DE MEMORARE 1. EXTRAGEREA INTSRUCIUNII instruciunea este citit din memorie folosindu-se adresa din PC, apoi este pus n registrul pipeline EI/DI
4. ACCESUL LA MEMORIE citete memoria de date folosind adresa din registrul Pipeline EX/MEM i ncarc data n registrul pipeline MEM/RS
5. RESCRIEREA FIIERULUI DE REGISTRE citirea datei din registrul pipeline MEM/RS pe care o scrie n fiierul de registre.
CONTROLUL PENTRU PIPELINE Fiecare linie de control este asociat cu o component care este activ doar ntr -o Singur etap pipeline.
Implementarea controlului
TEM S se arate trecerea prin pipeline a urmtoarelor 5 instruc iuni: lw sub and or add $10, 20 ($1) $11, $2, $3 $12, $4, $5 $13, $6, $7 $14, $8, $9
S se eticheteze instruciunile din pipeline care preced instruc iunea lw sub forma inainte <1>, inainte <2>, .. i instruciunile care urmeaz instruc iunii add sub forma
dupa <1>, dupa <2>
Soluia software introducere nop-uri => cicluri de ceas n care nu se face nimic
Detecia hazardului
1a. EX/MEM.RegistruRd = DI/EX.RegistruRs 1b. EX/MEM.RegistruRd = DI/EX.RegistruRt 2a. MEM/RS.RegistruRd = DI/EX.RegistruRs 2b. MEM/RS.RegistruRd = DI/EX.RegistruRt Dac intrrile UAL pot fi luate de la orice registru pipeline, nu numai de la EI/DI, atunci avansarea ar fi corect.
Soluia hardware
Pe lng unitatea de avansare trebuie s existe o unitate de detectare a hazardului. If (ID/EX.CiteteMem and ((ID/EX.RegistruRt = IE/ID.RegistruRs) or (ID/EX.RegistruRt = IE/ID.RegistruR))) staionare pipeline
Rezultatul final
Hazarduri de ramificaie
Un exemplu intuitiv Un student aflat n biblioteca facultii are pe mas o serie de cri
Principiul localizrii - st la baza modului de operare a programelor stabilete faptul c programele acceseaz o por iune relativ redus a spaiului lor de adrese la orice moment de timp Localizarea temporal - localizare n timp - dac se face referire la un anumit obiect, este posibil ca acesta s fie refrit din nou ct de curnd Localizarea spaial - localizare n spaiu - dac se face referire la un anumit obiect din memorie, obiectele ale cror adrese sunt nvecinate cu acesta tind s fie adresate ct de curnd.
Principiul localizrii temporare este folosit la implementarea memoriei unui calculator sub forma unei ierarhii de memorie.
O ierarhie de memorii poate fi alctuit din mai multe niveluri, ns datele la un moment dat sunt copiate doar ntre dou niveluri adiacente.
Unitatea minim de informaie care poate fi prezent sau absent ntr -o ierarhie de memorie se numete bloc.
Unitatea minim de informaie care poate fi prezent sau absent ntr -o ierarhie de memorie se numete bloc. Regsirea informaiei necesare procesorului ntr-un bloc de memorie superior se numete HIT Neregsirea datelor pe nivelul superior se nume te MISS Rata de succes - fraciunea din accesele la memorie ce au gsit datele n nivelul superior de memorie.
Rata de eec = 1 - rata de succes fraciunea din accesele la memorie care nu au gsit datele n nivelul superior de memorie.
Timpul de succes - reprezint timpul necesar accesului la un nivel superior al ierarhiei de memorie, ce include i timpul necesar determinrii tipului de acces. Penalizarea de eec - reprezint timpul necesar nlocuirii blocului din nivelul superior cu blocul corespunztor din nivelul inferior, incluznd i timpul trimiterii acestui bloc ctre procesor. Construirea sistemelor de memorie afecteaz: 1. modul n care SO-ul administreaz memoria i perifericele 2. modul n care compilatoarele genereaz codul 3. modul n care aplicaiile folosesc maina de calcul
Principiu de baz Programele prezint localizare temporal ct i localizare spaial. Ierarhiile de memorie folosesc avantajul localizrii temporale pstrnd datele accesate recent ct mai aproape de procesor. Ierarhiile de memorie folosesc avantajullocalizrii spa iale prin mutarea blocurilor coninnd cuvinte nvecinate din memorie n nivelurile superioare ale ierarhiei.
n anii 60 s-a folosit cuvntul cache pentru a desemna nivelul ierarhiei de memorie aflat ntre UCP i memoria principal.
PRINCIPIILE DE BAZ ALE MEMORIILOR CACHE Iniial cuvntul de date Xn nu se gsete n cache
!!!!! Fiecare cuvnt poate fi memorat doar ntr-o anumit locaie a memoriei cache => coresponden direct.
Corespondena dintre adrese i locaiile memoriei cache se determin astfel: (Adresa blocului) modulo (numrul de blocuri din memoria cache)
26 22
26 16 3 16 18
11010 10110
11010 10000 11 10000 10010
Index V Index V
0 1 N N
Marcaj
Date
Marcaj
Date
0
1 10 11 100 101 110
N
N N N N N Y 10 mem (10110)
10
11 100 101 110 111
N
N N N N N
111
Index V
0 1 10 11 100 101 110 111 N N Y N N N Y N
Marcaj
Date
Index 0 1
V Y N
Marcaj 10
11
mem (11010)
10
11 100 101
Y
N N N Y N
11
mem (11010)
10
mem (10110)
110 111
10
mem (10110)
Acest tip de accesare permite folosirea principiului localizrii temporale cuvintele accesate recent le nlocuiesc pe cele accesate mai pu in recent.
Tag = Marcaj
1. indexul memoriei cache, folosit la selectarea blocului de memorie cache 2. cmpul marcajului, folosit la compararea cu valoarea din cmpul marcaj al memoriei cache
TEM
Ci bii sunt necesari pentru o memorie cache cu coresponden direct avnd 64KB de date i blocuri de 1 cuvnt, folosind adrese de 32 de bii ?
Tratarea eecurilor
a). Soluia cea mai simpl presupune staionarea UCP-ul, nghend coninutul tuturor registrelor. O unitate de control separat trateaz eecul, aducnd data din memoria principal n memoria cache Execuia este reluat ncepnd cu ciclul care a cauzat eecul.
Tratarea eecului se face de ctre unitatea de control a procesorului i de ctre o unitate de control separat ce iniieaz accesul la memorie i aduce datele n memoria cache.
b). n cazul implementrii pipeline tratarea eecurilor la memoria cache este mai dificil deoarece execuia unor instruciuni trebuie continuat, n timp ce altele staioneaz.
3). se scrie locaia memoriei cache, punnd datele din memorie n poriunea de date a acestei locaii, scriind biii cei mai semnificativi ai adresei (din UAL) n cmpul marcajului i setnd bitul de validare;
4). se repornete execuia instruciunii la primul pas, care va reextrage instruciunea - de data aceasta se regsete n memoria cache.
O metod de reducere a efectului eecurilor la memoria cache este folosirea tehnicii staionare la utilizare.
EXEMPLU
CITIREA
1 - se trimite adresa la memoria cache corespunztoare. Adresa vine fie de la PC (pt instruciuni) fie de la UAL (pt date).
2- daca HIT cuvntul este disponibil pe liniile de date. Dac MISS, se trimite adresa la memoria principal. Cnd memoria transmite datele de la adresa respectiv, acestea sunt scrise n memoria cache.
SCRIEREA
Dac se scrie doar n memoria cache i nu i n memoria principal => memoria principal i memoria cache sunt inconsistente. Cea mai simpl metod de evitare este scrierea n ambele memorii => scriere simultan - write through.
1. memoria cache este indexat folosind biii 15-2 ai adresei 2. se scriu biii 31-16 ai adresei n marcaj, se scrie cuvntul n zona de date i se seteaz bitul de validitate 3. se scrie cuvntul n memorie folosind ntreaga adres
O soluie la metoda write through este schema write back - scrie la loc
Se dorete ca blocul memoriei cache s fie mai mare dect lungimea unui cuvnt
EXEMPLU
Se consider o memorie cache cu 64 de blocuri de date, fiecare cu dimensiunea de 16 octei. Care este numrul blocului corespunztor adresei de octet 1200 ?
Un bloc de date conine mai mult de un cuvnt => nu se poate s screim doar marcajele i datele.
Consideraii: 1. dou adrese de memorie X i Y au acelai bloc corespondent C n memloria cache 2. Blocul are 4 cuvinte i conine adresa Y 3. Scriem la adresa X prin simpla suprapunere a datelor i a marcajului din blocul C
Pn acum am folosit doar schema de amplasare a blocurilor din memoria cache denumit coresponden direct. Schema n care un bloc de date poate fi amplasat n orice locaie din memoria cache se numete schem cu asociativitate total.
Regsirea blocului de date presupune examinarea tuturor locaiilor de memorie cache => paralelizarea cutrii O alt schem care este ntre cele dou se numete schema cu asociativitate parial .
n aceste tipuri de scheme memoria cache are un numr fix de locaii n care se poate amplasa fiecare bloc de date. Deci vom avea un numr de seturi fiecare format din n blocuri de date.
Pentru regsirea blocului este necesar s parcurgem toate blocurile unui set.
ntr-o memorie cache cu asociativitate parial, setul coninnd un anumit bloc de memorie este dat de relaia: (numrul blocului) modulo (numrul de seturi din memoria cache)
OBSERVAIE : Creterea gradului de asociativitate reduce rata de eec, dar crete timpul de HIT.
EXEMPLU Avem 3 memorii cache fiecare avnd 4 blocuri de cte 1 cuvnt. Cele trei memorii cache sunt cu asociativitate total, asociativitate cu 2 ci i coresponden direct. S se gseasc numrul de eecuri pentru fiecare dintre cele 3 scheme de amplasare avnd urmtoarea secven de adrese de bloc: 0,8, 0, 6, 8. SOLUIE Cazul 1 memoria cache cu coresponden direct Detectm blocul din memoria cache corespunztor adreselor date: Adresa blocului Blocul memoriei cache
0 6
8
0 modulo 4 = 0 6 modulo 4 = 2
8 modulo 4 = 0
Coninutul memoriei cache dup fiecare referin Adresa blocului HIT sau MISS Blocul de memorie 0 accesat Blocul Blocul 1 2 Blocul 3
0
8 0 6
Miss
Miss Miss Miss
Mem(0)
Mem(8) Mem(0) Mem(0) Mem(6)
Miss
Mem(8)
Mem(6)
Cazul 2. Memoria cache cu asociativitate parial cu 2 ci conine 2 seturi (indicii fiind 0 i 1), fiecare avnd 4 elemente. Vom determina setul corespunztor fiecrei adrese a blocurilor Adresa blocului 0 Blocul memoriei cache 0 modulo 2 = 0
6
8
6 modulo 2 = 0
8 modulo 2 = 0
Pentru nlocuire vom folosi LRU Adresa blocului HIT sau MISS Set 0 de memorie accesat Set 1 Set 2 Set 3
0
8
Miss
Miss
Mem(0)
Mem(0) Mem(8)
0 6
8
HIT Miss
Miss
Mem(0) Mem(0)
Mem(8)
Mem(8) Mem(6)
Mem(6)
Avem doar 4 eecuri, deci soluia aceasta este mai bun dect precedenta
Memoria cache cu asociativitate total Adresa blocului HIT sau MISS Set 0 de memorie accesat Set 1 Set 2 Set 3
0
8
Miss
Miss
Mem(0)
Mem(0) Mem(8)
0 6
8
HIT Miss
HIT
Mem(0) Mem(0)
Mem(0)
Mem(8) Mem(8)
Mem(8)
Mem(6)
Mem(6)
Pstrm dimensiunea memoriei cache constant i ncercm s mrim asociativitatea => numrul de blocuri/set va crete => va crete numrul de comparaii efectuate n paralel.
Creterea asociativitii cu un factor de doi va dubla numrul blocurilor din set i va njumtii numrul de seturi => descreterea dimensiunii indexului cu 1 bit i o cretere a dimensiunii marcajului cu 1 bit.
Exemplu: Presupunem o memorie cache cu blocuri de 4Kb i adrese de 32 de bii. S se gseasc numrul total de seturi i de bii de marcaj pentru memoria cache cu coresponden direct, cu asociativitate parial cu 2 i 4 ci i cu asociativitate total. a). Nr. de seturi = nr. de blocuri => log2(4Kb) = 12 bii de index => (32-12)4K=80Kb numrul total al biilor din marcaj b). Cu 2 ci: 2K seturi i numrul total al biilor de marcaj este (32-11)*2*2K = 84Kb Cu 4 ci: 1K seturi i numrul total al biilor de marcaj este (32-10)*4*1K = 88Kb
c). 1 set cu 4K blocuri iar marcajul are 32 de bii => 32*4K*1 = 128 bii pentru marcaj
MEMORIA VIRTUAL
Memoria principal poate aciona ca o memorie cache pentru nivelul de stocare secundar uzual implementat cu discuri magnetice.
De ce avem nevoie de o memorie virtual ? 1. Permite folosirea n comun, eficient i sigur a memoriei de ctre mai multe programe
Memoria principal trebuie s conin doar poriunile active ale programelor, deci va fi necesar un mecanism de protecie a programelor ntre ele trebuie s ne asigurm c un program va scrie i va citi doar din memoria principala atribuit lui.
Memoria virtual implementeaz translatarea spaiului de adrese al programului n adrese fizice. Acest translatare asigur unicitatea spaiului de adrese al unui program fa de alte programe.
Pn la apariia acestui concept, depirea dimensiunii de memorie implica intervenia programatorului. Se mprea programul n componente i se trecerea la determinarea excluderilor mutuale. Suprapunerile erau ncrcate sau scoase din memorie n timpul execuiei programului. Apelurile dintre procedurile aflate n diferite module determinau suprapunerea unui modul cu altul. Un bloc de memorie virtual este denumit pagin, iar un eec la accesarea memoriei virtuale se numete page fault. Pentru memoria virtual vom avea adrese virtuale ce sunt translatate n adrese fizice.
Exemplu: Adresa virtual este numele unei cri iar adresa fizic reprezint locaia crii n bibliotec.
Procesorul genereaz adrese virtuale n timp ce memoria este accesat folosind adrese fizice Ambele memorii sunt compuse din pagini (virtuale/fizice) ntre care exist o coresponden de 1:1 Exist posibilitatea ca o pagin virtual s fie prezent numai pe disc = > imposibilitatea de a avea ca i coresponden o pagin fizic . O pagin fizic poate fi folosit n comun dou adrese virtuale fac referire la acceai adres fizic.
Memoria virtual ofer mecanismul de realocare se calculeaz corespondena dintre adresele virtuale folosite de program i diferitele adrese fizice , nainte ca adresele fizice s fie folosite de program.
Proiectarea sistemelor de memorie virtual Dimensiunea paginilor trebuie s fie mare pentru a amortiza timpul de acces ridicat 32KB sau 64KB spre exemplu Amplasarea complet asociativ a paginilor se reduce complet frecvena de page fault. Page fault-urile pot fi tratate prin intermediul software-ului. n memoria virtual, paginile sunt localizate prin folosirea unui tabel ce indexeaz memoria; acest structur se numete page table tabel de pagin. Fiecare program are tabelul su de pagini, ce conine corespondena dintre spaiul su de adrese virtuale i adresele memoriei principale.
Adresa unui tabel este memorat ntr -un registru ce indic adresa de nceput a tabelului page table register.
!!!! Presupunem c tabelul se gsete ntr -o regiune fix i continu din memorie
Page faults n cazul n care bitul de validare este 0 (apare page fault) controlul va fi preluat de SO prin intermediul unui mecanism de tratare a excepiilor SO-ul caut pagina n urmtorul nivel de memorie din ierarhie, adresa virtual nu poate indica unde se gsete pagina cerut. SO-ul creeaz un spaiu pe disc pentru toate paginile unui proces odat cu crearea acestuia, mpreun cu o structur de date pentru nregistrarea locului unde este memorat fiecare pagin virtual pe disc. SO-ul creeaz de asemenea, o structur de date ce ine evidena proceselor i adreselor virtuale folosite de ctre fiecare pagin fizic.
Tabelele cu adresele paginilor fizice i ale paginilor de pe disc vor fi memorate n dou structuri de date separate.
Tehnici pentru reducerea volumului de memorie ocupat de tabelele de pagini i minimizarea memoriei principale alocate acestora
1. Utilizarea unui registru de limitare ce constrnge dimensiunea tabelului de pagini pentru un proces dat. 2. Majoritatea limbajelor necesit 2 poriuni expandabile una ce conine stiva i cealalt ce conine zona de acumulare (HEAP). Dezavantaj nu funcioneaz bine atunci cnd spaiul de adrese este folosit ntr-un mod discontinuu.
3. Aplicarea unei funcii de cutare HASHING pentru adresa virtual, astfel nct structura de date ce conine tabelul de pagini s aib o dimensiune egal doar cu numrul de pagini fizice existente n memoria principal.
Putem folosi scheme de memorii cache cu scrieri simultane doar dac implementm bufer-e de memorie (diferena dintre timpul de acces al memoriei cache i cel al memoriei principale este de ordinul zecilor de cicluri)
Sistemele de memorie virtual trebuie s implementeze scrierea la loc (copy back) se execut scrieri individuale n pagina de memorie i se copiaz aceast pagin napoi pe disc, atunci cnd este nlocuit n memorie.
Va trebui s determinm dac o pagin de memorie necesit transferul napoi atunci cnd ea este nlocuit n memorie.
Pentru aceasta adugm un bit de scriere dirty bit. Acest bit iniial 0 va deveni 1 n momentul n care se scrie prima dat n aceast pagin.
Unde sunt pstrate tabelele de pagini ? Ce accese la memorie sunt necesare pentru un program ? Ce principiu putem utiliza pentru mrirea performanei ?
Cnd este folosit o translatare pentru un numr de pagin virtual, aceasta va fi probabil necesar din nou n viitorul apropiat. De ce ?
Din aceste considerente, mainile moderne includ o memorie cache special care menine evidena translatrilor recente numit Translation Lookaside Buffer memorie tampon de translatare cu cutare lateral - TLB
TLB acioneaz ca i o memorie cache a tabelului de pagini doar pentru poziiile acestuia ce au corespondent n paginile fizice
La fiecare referin se va cuta numrul de pagin virtual din TLB. Daca avem HIT, numrul paginii fizice este utilizat pentru formarea adresei, iar bitul de referin corespunztor va fi setat. Bitul de scriere va fi setat i n cazul n care procesorul execut o scriere Dac avem MISS trebuie determinat cauza: greeal de pagin sau eec n TLB.
Cazul 1 eec n TLB, deci pagina este n memorie => c translatarea lipsete. UCP-ul va trata eroarea prin ncrcarea translatrii din tabelul de pagini n TLB i reluarea referinei.
Cazul 2 greeal de pagin, UCP-ul va invoca sistemul de operare folosind o excepie. Eecurile n TLB vor fi mult mai frecvente dect greelile de pagin. De ce ? Eecurile n TLB vor fi tratate software sau hardware. Ambele metode ofer performane similare.
n timp ce memoria cache are coresponden direct, TLB -ul are asociativitate total. Implementarea asociativitii totale pentru TLB necesit ca fiecare marcaj din TLB i fie comparat cu valoarea indexului T deoarece poziia cutat poate fi oriunde n TLB.
Dac bitul de validare al poziiei corecte este setat, accesul la TLB este un succes i numrul de pagin mpreun cu deplasarea acesteia formeaz indexul ce este folosit pentru accesul la memoria cache.
Considerm ierarhia de memorie din figura 1 ce include: un TLB o memorie cache O referin la memorie poate avea urmtoarele 3 tipuri de eecuri: un eec al memoriei cache un eec al TLB-ului greeal de pagin
Memorie cache
MISS
TLB
HIT
Memorie virtual
HIT
HIT
MISS MISS MISS HIT HIT
MISS
MISS MISS HIT HIT MISS
HIT
HIT MISS MISS MISS MISS
Eec TLB, dar poziia este gsit n tabelul de pagini; dup rencrcare, datele se vor gsi n memoria cache
Eec TLB, poziia este gsit n tabelul de pagini; dup rencrcare datele vor lipsi din cache Eec TLB urmat de o greeal de pagin; dup rencrcare datele trebuie s lipseasc din memoria cache Imposibil: TLB-ul nu poate conine o translatare dac pagina nu se gsete n memorie Imposibil: Imposibil
Exemplul prezentat presupune c adresele de memorie sunt translatate n adrese fizice nainte ca memoria cache s fie accesat => memoria cache este indexat i marcat fizic.
Timpul de acces la memorie (n cazul HIT) = timpul de acces TLB + timp acces memoria cache accesele pot fi executate n pipe.
O alternativ la aceast soluie este aceea ca UCP-ul s indexeze memoria cache cu o adres parial/complet virtual MEMORIE CACHE ADRESAT VIRTUAL.
n astfel de implementri, memoria cache este indexat i marcat virtual. Hardware-ul pentru translatarea adresei (exp. TLB-ul) nu este folosit n timpul accesului normal la memoria cache De ce ?
n cazul unor astfel de implementri, cnd paginile sunt folosite n comun de ctre programe, exist posibilitatea de suprapunere - ALIASING
Funcia cea mai important a unei memorii virtuale folosirea de ctre mai multe procese n comun a memoriei principale. Mecanismul de protecie trebuie s asigure: un proces nu poate s scrie n spaiul de adrese al altui proces sau n sistemul de operare nu trebuie s fie posibil situaia n care un proces citete datele altui proces
Pentru asigurarea acestor cerine hardware-ul trebuie s ofere: trebuie s suporte cel puin dou moduri ce indic dac procesul executat este un proces al utilizatorului sau un proces al sistemului de operare (kernel process sau supervisor process)
trebuie s furnizeze o poriune a strii UCP -ului pe care s o poat citi, dar nu i scrie un proces al utilizatorului sistemul de operare folosete instruciuni speciale oferite doar n modul supervizor
trebuie s ofere mecanisme prin care UCP poate trece din modul utilizator n cel supervizor i invers
Tratarea greelilor de pagin i a eecurilor n TLB Un eec TLB apare atunci cnd nici o poziie n TLB nu corespunde unei anumite adrese virtuale. Putem avea urmtoarele posibiliti: 1. Pagina este prezent n memorie i trebuie creat poziia lips din TLB 2. Pagina nu este prezent n memorie i trebuie ca SO-ul s s prelucreze aceast situaie Cum stabilim care situaie este situaia curent ?
Un eec TLB poate fi tratat software sau hardware va trebui o secven scurt de operaiuni pentru a copia o poziie valid din tabelul de pagini n TLB.
Excepia cauzat de greeala de pagin trebuie declarat pn la sfritul aceluiai ciclu de ceas n care se face accesul la memorie.
CONCLUZII
Memoria virtual reprezint numele unui nivel din ierarhia de memorie ce administreaz caching-ul dintre memoria principal i unitatea de disc. Permite unui singur program s i extind spaiul de adrese n afara limitelor memoriei principale. Memoria virtual permite folosirea n comun a memoriei principale de ctre mai multe procese simultan active oferind mecanisme de protecie a memoriei.
Tehnicile existente pentru administrarea ierarhiei de memorie ntre memoria principal i unitatea de disc sunt: 1. Folosirea de blocuri de date de dimensiuni mari (pagini) pentru folosirea principiului localizrii spaiale 2. Corespondena dintre adresele virtuale i cele fizice implementat printr-un tabel de pagini este total asociativ => o pagin virtual poate fi plasat oriunde n memoria principal. 3. SO-ul folosete LRU sau bitul de referin pentru alegerea paginii care trebuie nlocuit
Mecanismul memoriei virtuale ofer translatarea din adrese virtuale n adrese fizice. Acest translatare permite folosirea n comun n mod partajat a memoriei principale. TLB-ul acioneaz ca o memorie cache pentru translatrile din tabelul de pagini. Fiecare adres este translatat dintr-una virtual n una fizic folosind translatrile din TLB.
UNDE POATE FI AMPLASAT UN BLOC DE DATE ? Amplasarea blocului la nivelul superior al ierarhiei. Avantajul creterii gradului de asociativitate este acela al scderii ratei de eec.
Performana crete prea puin n cazul mririi dimensiunii memoriei cache deoarece rata de eec global a unei memorii cache de dimensiuni mari este mai redus. Dezavantajul schemelor cu asociativitate este dat de costurile crescute i de timpul de acces mai mare.
CUM SE POATE REGSI UN BLOC DE DATE ?
Implementarea unui grad nalt de asociativitate n memoriile cache nu este o soluie optim datorit costurilor comparatoarelor care cresc n timp ce rata mbuntirile ratei de eec sunt mici.
n sistemele de memorie virtual se pstreaz un tabel separat de coresponden pentru indexarea memoriei. Alegerea asociativitii totale i a acestui tabel sunt justificate de 4 factori. Care sunt aceeia ? Schemele de amplasare cu asociativitate parial sunt folosite pentru memoriile cache i TLB-uri, unde accesul combin indexarea i cutarea ntr -un set redus de locaii.
CE BLOC DE DATE TREBUIE NLOCUIT N CAZ DE MISS PENTRU MEMORIA CACHE ? n cazul n care memoria este cu asociativitate total, toate blocurile pot fi nlocuite. Dac memoria cache este parial asociativ, trebuie ales ntre blocurile din set. Dac avem memorie cu coresponden direct, atunci avem o singur posibilitate de nlocuire. Strategiile fundamentale de nlocuire sunt: aleatorie i LRU. LRU nu se implementeaz n ierarhii cu mai mult de 2-4 grade de asociativitate. Pentru restul de ierarhii LRU este doar aproximat. n memoriile cache algoritmul de nlocuire este codificat n hardware. Odat cu creterea dimensiunii memoriei cache rata de eec pentru ambele startegii de nlocuire scade i diferena devine foarte mic.
Exist 2 metode de baz: Scrierea simultan informaia este scris att n blocul de date din memoria cache ct i n blocul de date din nivelul inferior al ierarhiei. Scrierea la loc informaia este scris doar n blocul din memoria cache. Blocul modificat este scris la nivelul ierarhic inferior doar atunci cnd este nlocuit.
AVANTAJE pentru scrierea la loc: 1. Cuvintele individuale pot fi scrise de procesor la viteza cu care sunt acceptate de ctre memoria cache i nu de ctre memoria principal. 2. Scrierile multiple n interiorul blocului necesit o singur scriere n nivelul inferior al ierarhiei de memorie 3. Pentru scrierea blocurilor la nivelul inferior se folosete un transfer de band mare.
AVANTAJE pentru scrierea simultan: 1. Eecurile sunt mai simple i au un cost mai sczut, deoarece nu necesit scrierea unui bloc la loc n nivelul inferior de memorie
I/O
Actualmente exist o mare varietate de dispozitive de I/O. Organizarea acestor dispozitive se poate face avnd n vedere urmtoarele caracteristici: 1. COMPORTAREA input (citire o singur dat); output (scriere odat); storage (citire i rescriere) 2. Partenerul om sau dispozitiv electronic
3. Rata datelor valoarea maxim cu care datele pot fi transferate ntre dispozitivul de I/O i memoria principal/procesor
Exp: Tastatura este un dispozitiv de intrare utilizat de ctre om cu o rat a datelor de peste 10 bytes/sec
Conexiunile ntre dispozitivele de I/O, procesor i memorie sunt denumite magistrale. Comunicaia ntre dispozitive i procesor presupune utilizarea ntreruperilor precum i folosirea unor protocoale de comunicaie.
Performana I/O depinde de limea de band existent ntre dispozitive. Limea de band poate fi msurat prin 2 metode: 1. Ct de multe date pot fi mutate prin sistem ntr-o anumit perioad de timp 2. Cte operaii de I/O pot fi efectuate ntr-o unitate de timp
Exemple: n cazul aplicaiilor multimedia limea de band este folosit n determinarea performanei; n cazul procesrilor unui numr foarte mare de accese al unui dispozitiv I/O, numrul de operaii I/O efectuate n unitatea de timp va fi factorul cheie n determinarea performanei.
n cazul calculatoarelor i al laptop-urilor, timpul de rspuns este considerat factorul cheie n determinarea performanei
n cazul dispozitivelor embedded ne intereseaz durata fiecrui task i numrul de task-uri ce pot fi procesate ntr/o secund.
Discurile magnetice platane rotitoare acoperite cu o suprafa magnetic ce utilizeaz micarea capetelor de citire/scriere pentru accesul la disk. Este nonvolatil datele rmn i dup ntreruperea alimentrii cu energie a dispozitivului.
Iniial toate pistele aveau acelai numr de sectoare s-a introdus ZBR (zone bit record) Capetele de citire/scriere sunt conectate mpreun => micarea se face n conjuncie. Fiecare cap este peste aceeai pist indiferent de suprafa => cilindru. Accesarea unei date presupune: 1. Poziionarea capetelor deasupra pistei dorite seek seek time
2. Se ateapt pn cnd capetele ajung deasupra sectorului dorit delay sau rotational delay
Exp:
0,5 rotatii
0,0056 s 5,6 ms
0,5 rotatii
0,0020 s
2,0 ms
3. Timpul de transfer timpul necesar transferrii unui bloc de bii. Timpul de trasfer = f(dimensiune sector, viteza de rotaie, densitatea nregistrrilor a unei piste)
Controller-ul de disk are rol de control al discului precum i de control al transferului dintre disk i memorie.
La timpul de acces la disk se include i timpul necesar operrii controller-ului de disk Exp: S se determine timpul mediu de citire/scriere al unui sector de 512bytes pentru un disk care are o vitez de rotaie de 10000 RPM. Se cunosc: 1. 2. 3. 4. Timpul mediu de poziionare dat = 6 ms Rata de transfer = 50 MB/s Overhead-ul controller-ului este de 0,2 ms Presupunem c discul este idle => nu exist timp de ateptare
Soluie Timpul mediu de acces al discului = timpul mediu de poziionare + ntrzierea medie + timpul de transfer + overhead-ul controller-ului
6,0 ms
0,5 KB 50 MB / s
Dac timpul mediu de poziionare msurat este 25% din timpul mediu dat, atunci avem: 1,5 ms + 3,0 ms + 0,01 ms + 0,2 ms = 4,7 ms
RAID Redundant Arrays of Inexpensive Disks O organizare de disk-uri care utilizeaz o matrice de disk-uri mici (ca i capicate) i ieftine pentru creterea performanelor i a siguranei n utilizare. Ideea a fost de nlocuire a discurilor mari cu disk-uri mici. Disk-urile mici sunt mult mai eficiente per gigabyte dect disk-urile mari (evident ne referim la cantitatea de date stocat pe un astfel de disk) RAID 0 nu avem redundan striping Presupune rspndirea datelor pe mai multe disk-uri => acces automat la mai multe disk-uri simultan. Din punct de vedere al utilizatorului exist doar un singur disk, ceea ce simplific managementul informaiei. Performan mare pentru accese la informaie de dimensiune mare (sisteme de editare video) deoarece mai multe disk-uri funcioneaz ca unul singur.
RAID 1 toleran la defecte mirroring sau shadowing Este modalitatea aleas atunci cnd tolerana la defecte este un punct critic. Numrul de hardisk-uri utilizat este dublu fa de RAID 0. Cnd o dat este scris pe un disk, automat datele sunt scrise pe un alt disk redundant => ntotdeauna vom avea 2 copii ale informaiei. Dac un disk va prezenta un defect la un moment dat, atunci informaia va fi citit de pe discul oglind. CEA MAI SCUMP SOLIE RAID. RAID 2 detectare i corectare erori mprumut tehnicile de detecie i corecie a erorilor folosite n cazul memoriilor
RAID 3 grup de protecie bit-interleaved parity Costul unei disponibiliti mrite a datelor poate fi redus la 1/N, unde N este numrul de disk-uri care fac parte dintr-un grup de protecie. Dect s adugm disk-uri, mai simplu ar fi s adugm informaie redundant pentru restaurarea informaiei pierdute n caz de crash.
Citirile/scrierile se fac pe toate disk-urile din grup, dar vom avea 1 extra disk pentru meninerea informaiei de verificare n caz de crash. Schema folosit este determinarea paritii informaiei. RAID 3 este foarte folosit n cazul aplicaiilor care utilizeaz seturi de date foarte mari multimedia sau cod tiinific
RAID 4 block-interleaved parity Similar cu RAID 3, doar c utilizeaz un acces al datelor diferit. Paritatea este memorat ca blocuri i asociat cu un set de blocuri de date.
RAID 3 vs RAID 4 Sunt optimizate scrierile mici, deci vom avea un numr redus de accese la disk precum i un numr mic de disk-uri ocupate.
RAID 5 distributed block-interleaved parity Dezavantajul lui RAID 4 este faptul c paritatea disk-ului trebuie recalculat la fiecare scriere. O soluie ar fi s distribuim aceast informaie pe toate discurile astfel nct s nu mai avem un singur bottleneck.
RAID 6 P + Q redundancy
Folosit n cazul n care o singur corecie nu este suficient. Putem generaliza paritatea pentru a avea o nou calulaie pentru date i o nou informaie pentru verificarea discului. Acest block secundar este folosit pentru recuperarea datelor n caz de eec multiplu. Overhead-ul este dublu fa de RAID 5.
MAGISTRALE - BUSES
O magistral conine un set de linii de control i un set de linii de date. Liniile de control sunt utilizate pentru semnale de tip cerere i confirmare i ele indic tipul informaiei existent pe liniile de date. Liile de date sunt folosite la transportarea informaiei ntre surs i destinaie. Acest informaie poate s conin comenzi complexe, date i adrese.
Bus transaction o secven de operaii care include o cerere i poate include un rspuns. O tranzacie este iniiat de un singur request i poate avea mai multe operaii individuale de magistral. Processor-memory bus
Backplane Bus - o magistral care este proiectat pentru a permite coexistarea pe o singur magistral a urmatoarelor componente: procesor, echipamente I/O, memoria
Magistral sincron O magistral care include ceasul n liniile de control i un protocol fix pentru comunicarea relativ la frontul de ceas.
Magistral asincron O magistral care utilizeaz protocolul HANDSHAKING pentru coordonarea utilizrii n locul ceasului. Este folosit ca o punte de legtur ntre dispozitive care opereaz la viteze diferite
Firewire (1394)
USB 2.0
Protocolul - HANDSHAKING
Split Transaction Protocol Un protocol n care magistrala este eliberat pe durata unei transacii de magistral ct timp cel care a lansta cererea este n ateptare pentru datele ce vor fi transmise.