Manual Arhitectura Sistemelor de Calcul
Manual Arhitectura Sistemelor de Calcul
Manual Arhitectura Sistemelor de Calcul
INTRODUCERE
Spa iul datelor. Materialul prelucrat la baza piramidei este considerat un spa iu
de date din care fac parte numere reprezentate n diverse formate. Datele prelucrate
sunt considerate mutual independente n spa iul lor. Spa iul datelor este cel mai mare
spa iu al obiectelor prelucrate cu sistemul de calcul, incluznd caractere, simboluri
i/sau reprezent ri multidimensionale ale acestora, numere n diverse formate.
Spa iul informa iilor. Termenul de informa ie reprezint o colec ie de date
legate ntre ele printr-o anumit rela ie sau structur sintactic . El se prezint ca un
subspa iu al spa iului de date. Prin sintax se n elege un set de reguli care
guverneaz alc tuirea propozi iilor dintr-un limbaj.
Spa iul cuno tin elor. Formeaz un subspa iu n cadrul spa iului informa iilor.
Informa iile sunt legate ntre ele printr-o structur semantic . Semantica reprezint
un set de reguli care extrag n elesul propozi iilor dintr-un limbaj.
Spa iul prelucr rilor de tip inteligen artificial . Lucreaz cu baze de
cuno tin e, reguli de inferen (ra ionament) sau cu alte mijloace specifice
domeniului de inteligen artificial . Calculatoarele de ast zi au devenit suficient
de rapide. Cu toate acestea, nici un calculator actual nu este un sistem inteligent
care gnde te independent.
10
Introducere
11
Un calculator alc tuit din n nivele poate fi v zut ca n ma ini virtuale distincte,
fiecare ma in virtual avnd propriul s u limbaj. Programele scrise n limbajele L2,
L3, , Ln trebuie s fie interpretate de un interpretor avnd un nivel mai mic sau s
fie traduse ntr-un limbaj inferior. Programatorul care are programele scrise pentru o
ma in virtual de nivelul n nu este interesat de compilatoare i nici de
interpretoarele aflate la un nivel inferior. Pentru acesta nu este interesant de tiut n
acest caz dac programele sunt traduse ntr-un limbaj cunoscut de calculator sau dac
ele sunt executate direct de c tre circuitele aflate la nivelul fizic. n ambele cazuri se
va ajunge la acela i rezultat: programele sunt executate, indiferent de metod .
12
Nivelul 0, primul nivel care intr n alc tuirea unui calculator, poart
denumirea de nivel fizic. Obiectele utilizate la acest nivel sunt por i, care prin
defini ie pot fi privite ca ni te componente logice interconectate ntre ele. Fiecare
poart dispune de una sau mai multe intr ri logice i ntoarce ca rezultat o func ie
simpl ob inut conform semnifica iei de la intrare (de exemplu I, SAU, NU). O
poart este realizat cu ajutorul tranzistorilor. Acest nivel execut instruc iunile
limbajului microprogramat (urm torul nivel ierarhic), care ac ioneaz asupra
nivelului 0 ca ni te comenzi. De re inut este faptul c nivelul 0 poate s nu fie
nivelul cel mai sc zut, sub el putnd exista un alt nivel care poart denumirea de
nivel component , i care de regul nu apare n schema nivelurilor unui calculator.
Nivelul urm tor este nivelul 1 sau nivelul microprogramat. El este nivelul
limbajului intern al ma inii. Aici exist un microprogram care interpreteaz
instruc iunile de nivel 2 i care este realizat cu un set restrns de instruc iuni simple
(n medie cam 20 de instruc iuni), de transfer i teste simple ale unor condi ii. Este
scris ntr-o memorie ROM intern , la ea avnd acces numai produc torul.
Deasupra nivelului 1 se afl nivelul 2 sau nivelul ma inii tradi ionale.
Fiecare procesor define te n mod implicit un limbaj de nivel 2 i o ma in virtual
al c rei limbaj ma in este interpretat de un microprogram. Denumirea de nivel al
ma inii tradi ionale este dat deoarece componentele au caracteristici comune.
Aceea i structur fizic poate corespunde la dou sau mai multe ma ini dac
microprogramul de pe nivelul 1 este scris n mod adecvat i aceea i ma in
tradi ional se poate implementa prin diverse structuri fizice. Exist i excep ii:
unele calculatoare nu dispun de nivelul microprogramat (nivelul 1), n acest caz
instruc iunile de pe nivelul 2 fiind tratate direct de nivelul 0.
Al treilea nivel este un nivel hibrid, n sensul c cea mai mare parte a
instruc iunilor care definesc limbajul 3 sunt de tip ma in . Se g sesc aici sarcini
specifice privind gestionarea memoriei i capacitatea de executare a mai multor
programe n paralel. Acest nivel poart denumirea de nivelul sistemului de operare.
De remarcat c nivelele 1 i 2 nu sunt accesibile programatorului mediu. Ele
sunt necesare pentru interpretarea nivelului inferior i sunt scrise de c tre speciali ti.
Limbajele de nivel 1, 2 i 3 sunt orientate c tre modul numeric, iar ncepnd cu
nivelul 4 apar limbaje formate din simboluri i cuvinte, care au o sintax .
Nivelul 4 este nivelul limbajului de asamblare. Este un nivel care nu poate s
lipseasc . Aici compilatorul genereaz cod direct pentru nivelul 3. Exist o
caracteristic specific acestui nivel: nivelurile inferioare (nivelul 2, nivelul 3) sunt
ntotdeauna interpretate, iar nivelurile superioare au asociate programe traduc toare.
Programele realizate n limbaj de asamblare sunt mai nti traduse n limbaje pentru
nivelurile 1, 2 i 3 i apoi interpretate de ma inile reale sau virtuale corespondente.
Urm torul nivel ierarhic este nivelul 5, numit nivelul limbajului de aplica ie.
Aici se afl limbaje concepute pentru a fi utilizate de c tre programatorii de
aplica ii. Ele mai sunt adesea denumite i limbaje de nivel nalt i sunt extrem de
numeroase. Printre cele mai cunoscute pot fi amintite: Basic, C, Cobol, Pascal,
Fortran etc. Programele scrise n unul din aceste limbaje sunt adesea traduse pentru
nivelele 3 sau 4 de c tre programe traduc toare specializate numite compilatoare.
Introducere
13
Nivelul 6, care este i cel mai de sus nivel, este reprezentat de un ansamblu
de programe. Ele con in numeroase date pentru aplica ii care pot ine de domenii
diferite de lucru.
n concluzie, se poate spune c un calculator poate fi v zut ca o suit de
nivele, fiecare nivel nglobnd toate nivelele precedente. Un nivel reprezint un
grad oarecare de abstractizare i con ine diverse obiecte i opera ii cu aceste
obiecte. n sens ascendent cre te complexitatea prelucr rii, iar n sens descendent
cre te volumul materialului prelucrat.
Ansamblul tipurilor de date, opera iilor i caracteristicilor fiec rui nivel
poart denumirea de arhitectura nivelului. n particular, arhitectura calculatoarelor
i structura lor semnific aproape acela i lucru.
14
Ma ina von Neumann era alc tuit din 5 p i: memoria, unitatea aritmetic
i logic , unitatea de control, dispozitivele de intrare i cele de ie ire. Memoria
dispunea de 4096 cuvinte, fiecare cuvnt avnd 40 de bi i (0 sau1). Instruc iunile
cuprindeau dou cmpuri: 8 bi i pentru tipul instruc iunii i 12 bi i pentru adres .
Unitatea aritmetic i logic con inea un registru intern special numit acumulator.
Ma ina nu dispunea de capacitate de calcul n virgul mobil .
cnd un salt peste timp se ajunge la modelul IBM 704 care avea aceea i
structur cu 4 K de memorie, instruc iuni de 36 de bi i i dispozitive speciale de
calcul n virgul mobil .
Introducere
15
120.000 de dolari, fapt care a determinat vnzarea sa de c tre firma DEC i deci
participarea la na terea unei industrii mini-informatice.
n 1964 apare pe pia modelul 6600 al firmei CDC, o ma in aproape de 10
ori mai rapid dect b trnul IBM 7094. Impactul asupra publicului a fost unul
foarte puternic, numeroase firme exprimndu- i dorin a de a cump ra un astfel de
calculator. Diferen a fa de modelul IBM: o arhitectur paralel . n concluzie,
dispunea de mai multe unit i func ionale capabile s execute simultan diverse
opera ii. Acest model putea executa 10 instruc iuni n acela i timp.
16
Un alt element esen ial este apari ia i dezvoltarea serviciului www (World
Wide Web) ini iat de Laboratorul CERN din Geneva n colaborare cu mai multe
universit i americane.
n 1993, firma Intel construie te microprocesorul cu structur superscalar
Pentium. Apar sistemele masiv paralele cu memorie partajat
i distribuit
(Cray/MPP). Interactivitatea serviciului www este asigurat prin introducerea
tehnologiei Java.
Evolu ia procesoarelor a luat apoi un avnt puternic, frecven ele de lucru
crescnd n numai opt ani de la 100 MHz la peste 3 GHz, nregistrndu-se n
acela i timp i o mbun ire a arhitecturii microprocesoarelor prin specializare,
memorie cache, paralelism (pipe-line), optimizarea algoritmilor
Este prezentat n continuare un scurt istoric al dezvolt rii domeniului.
AN
NUME
SUBIECT
1642
1834
Blaise Pascal
C. Babbage
1904
1906
1936
1943
J.A. Flemming
L. De Forest
K. Zuse
Guvernul britanic,
cu concursul lui A. Turing
H. Aiken
1944
1946
1948
J. Bardeen, W. Shockley,
W. Brattain
N. Wiener
M. Wilkes, cu arhitectur
propus de J. von Neumann
MIT
J. Mauchly i J.P. Eckert
J. von Neumann
1948
1949
1951
1951
1952
1955
1956
1960
1960-61
Laboratoarele Lincoln
Firma IBM
1961
1962
Firma IBM
Firma IBM
Firma DEC
Cibernetica
Primul calculator cu program nregistrat, EDSAC
Primul calculator n timp real, Whirlwind
Primul calculator comercializat Univac 1
Calculatorul IAS (Princeton) r spnde te
arhitectura de baz von Neumann
Primul calculator echipat cu tranzistoare TX 0
Calculatorul IBM 704
Circuite integrate
Primul minicalculator, PDP-1, practic nceputul
genera iei a doua de calculatoare (tranzistorizate)
i a miniinformaticii
Ma ina de gestiune 1401
Primul calculator tiin ific puternic
(pe 36 de bi i) IBM 7094
Introducere
1963
Firma Borroughs
1964
Firma IBM
1964
1965
Firma CDC
Firma DEC
1970
Firma DEC
1970
1971
1972
1974
1974
Firma Intel
Firma Intel
Firma Cray
Firma Intel
1978
1978
1979
1980
Firma Intel
Firma DEC
Firma Motorola
Firma IBM
1982
1983
Firma Intel
S.U.A.
1984
1985
1987
Firma Motorola
Firma Intel
Firma Motorola
1989
Firma Intel
1990 1991
1992
1993
Firma Intel
1993
1995
1996
Firma Cyrix
1997
1998
1998
1999
1999
2000
Firma AMD
Firma AMD
Firma Intel
Firma Intel
Firma AMD
Firma AMD
17
18
2002
2002
2003
2005
2005
2006
2007
2007
2007
2008
2. TIPURI DE ARHITECTURI
Caracteristici:
instruc iunile sunt executate serial, ns pot exista suprapuneri n
execu ie (pipeline). Majoritatea structurilor SISD r mase ast zi n uz
folosesc structuri pipeline.
20
Tipuri de arhitecturi
21
Caracteristici:
fiecare UC lucreaz cu irul de instruc iuni propriu SI1, ..., SIn;
fiecare UP lucreaz cu acela i ir de date, care suport mai multe prelucr ri;
partajare pe orizontal (un singur ir de date, mai multe iruri de instruc iuni);
22
Tipuri de arhitecturi
23
24
Tipuri de arhitecturi
25
26
Observa ie. Sistemele NUMA sunt foarte asem toare sistemelor distribuite,
din moment ce fiecare procesor dispune de o memorie local , iar toate aceste
module locale formeaz un spa iu unic de adresare.
O caracteristic important pentru ma inile NUMA este factorul NUMA.
Acest factor arat diferen ele de laten pentru accesarea datelor din memoria
local comparativ cu accesarea dintr-o zon care nu este local . n func ie de
conexiunile sistemului, factorul NUMA poate diferi pentru diverse p i ale
ma inii: accesarea datelor dintr-un nod vecin este mai rapid dect accesarea
datelor dintr-un nod mai ndep rtat pentru care este necesar traversarea unui
num r mai mare de etaje crossbar. A adar, atunci cnd este men ionat, factorul
NUMA se refer de obicei la cele mai ndep rtate dou procesoare ale unei re ele.
Arhitectura COMA (Cache-Only Memory Access)
n cazul modelului COMA, spa iul global de adrese este format din memorii
cache locale fiec rui procesor. Atunci cnd un procesor are nevoie de anumite date,
acestea sunt mai nti aduse n memoria cache de c tre controlerul de memorie,
dup care acestea vor fi accesate foarte rapid (vezi figura 2.10).
Tipuri de arhitecturi
27
28
Tipuri de arhitecturi
29
30
Tipuri de arhitecturi
31
Linia continu reprezint fluxul de date i instruc iuni, iar linia ntrerupt ,
fluxul de comenzi i st ri.
Unitatea de comand (UCda) controleaz activitatea tuturor componentelor
din sistem pe baza unei secven e de instruc iuni, reprezentnd programul memorat.
Caracterul secven ial al calculatorului rezult din modul de execu ie al
programului. Sunt necesare urm toarele etape majore (vezi figura 2.16):
nc rcarea instruc iunii IF (instruction fetch);
decodificarea instruc iunii ID (instruction decoding);
nc rcarea (din memorie) a operanzilor OF (operand fetch);
execu ia opera iilor impuse de instruc iune EX (execution).
Dup terminarea unei instruc iuni, se trece la urm toarea instruc iune. Astfel,
programul este executat secven ial, instruc iune cu instruc iune.
32
Fig. 2.16. Etapele execu iei secven iale a unei instruc iuni.
Tipuri de arhitecturi
33
n schema de mai sus, exist dou structuri pipeline: una pentru date scalare
i una pentru date vectoriale. Faza de nc rcare a opera iilor este mp it n dou
subfaze independente, corespunz toare oper rii cu scalari sau cu vectori. Faza de
execu ie se desf oar n dou procesoare distincte, asociate scalarilor sau
vectorilor.
34
Tehnica pipeline
Execu ia unei instruc iuni este privit ca fiind alc tuit din mai multe faze
(sau stagii), care se succed una dup alta i care pot fi tratate de unit i specializate,
ntr-un mod asem tor func ion rii unei linii de asamblare (de ex.: de automobile).
Exemplu. Fie un ir de procese care are loc la execu ia unei instruc iuni.
P1 1
P2
P3
P4
P5
2
1
3
2
1
4
3
2
1
5
4
3
2
1
6
5
4
3
2
7
6
5
4
3
t
Fig. 2.18. Exemplu de ir de procese la execu ia unei instruc iuni i desf urarea lor n timp.
Tipuri de arhitecturi
35
36
Tipuri de arhitecturi
37
Sistemul este eficient dac timpul de execu ie de c tre ALU a unei opera ii
este mult mai mare dect timpul de nc rcare i decodificare a unei instruc iuni.
Aceast condi ie este, n general, ndeplinit .
Exprimarea algebric a condi iei de eficien pentru multiplicarea i
specializarea ALU este:
tEX(ALU) >> tIF + tID.
Paralelism i structur pipeline n CPU
Primele genera ii de microprocesoare utilizau ALU (n special, sumatoare)
care operau cu flux de bi i (serial).
Introducerea unui ALU care opereaz n paralel, pe flux de 8, 16, 32 sau 64
bi i simultan (cu sumatoare, cu transport anticipat sau multiplicatoare matriceale)
duce la cre terea vitezei de prelucrare.
Arhitectura superscalar
n arhitectura superscalar , iruri de instruc iuni diferite (de obicei dou ,
eventual mai multe), utilizeaz resurse diferite n acelea i stadii de execu ie a
instruc iunilor de pe fiecare ir.
Un exemplu particular de arhitectur superscalar este prezentat n figura 2.22.
38
Tipuri de arhitecturi
39
Arhitectura superpipeline
Se bazeaz pe divizarea stagiului pipeline n substagii i, deci, pe cre terea
num rul de instruc iuni care sunt procesate de pipeline la un moment dat. Diviznd
fiecare stagiu n dou substagii, perioada ciclului de ceas va fi redus la jum tate:
/2.
La capacitate maxim , structura pipeline produce un rezultat la fiecare /2
secunde. Pentru o arhitectur dat i setul de instruc iuni aferent ei, exist un num r
optim de stagii pipeline. Dac num rul de stagii pipeline cre te peste aceast limit ,
se va reduce performan a global . O solu ie pentru a cre te viteza f
a face
compromisuri este arhitectura superscalar , prezentat anterior.
n figura 2.25, este prezentat un exemplu de execu ie pipeline (a),
superpipeline (b) i superscalar (c) a unei instruc iuni.
Suprapunerea opera iilor CPU cu opera iile I/O
Utilizarea unor controlere I/O separate permite efectuarea n paralel a
opera iilor interne ale CPU cu opera ii de transfer de date pe canalele I/O.
Exemple de controlere I/O:
controlere DMA (Direct Memory Access), care permit transferul direct de
date: memorie memorie sau memorie canale I/O, bazat pe principiul
cererii de magistral (aceasta reprezint una dintre tehnicile evoluate de
transfer de date, vezi paragraful 3.4.4.2);
procesoare specializate I/O, care lucreaz pe canale I/O cu sarcini specifice.
40
c
Fig. 2.25. Modul de operare al tehnicilor pipeline (a), superpipeline (b) i superscalar (c).
Tipuri de arhitecturi
41
42
Tipuri de arhitecturi
43
Exemplu. Fie trei procese paralele, P1, P2 i P3, fiecare fiind v zut n timp
ca o succesiune de trei etape: intrare (i), calcul (c), ie ire (o) (vezi figura 2.27.a).
Multiprogramarea
n acela i interval de timp pot exista mai multe programe (procese) active n
sistemul de calcul, concurnd pentru memorie, I/O i CPU. Totu i, unele programe
sunt orientate c tre calcule (utiliznd intens CPU), n timp ce altele sunt orientate
tre citirea/scrierea dispozitivelor I/O. Se pot astfel organiza (intercala) cele dou
clase de programe pentru a ob ine un timp de prelucrare global ct mai bun. n
figura 2.27.b, c tigul de timp este notat cu .
Intercalarea programelor permite utilizarea mai eficient a resurselor
calculatorului prin suprapunerea opera iilor I/O cu opera iile CPU. Acest mod de
organizare este gestionat de sistemul de operare (programul de supervizare). Astfel,
multiprogramarea se poate defini ca intercalarea opera iilor CPU cu opera ii I/O
pentru mai multe programe.
Observa ii.
1. P1, P2 i P3 pot apar ine aceluia i program sau unor programe diferite.
2. n cadrul multiprogram rii, se poate ntmpla ca un proces cu prioritate
mare s ocupe CPU un timp ndelungat i n acest fel se mpiedic
execu ia altor procese. Neajunsul se poate nl tura folosind un sistem de
operare cu divizare n timp.
Diviziunea n timp (time sharing)
Diviziunea n timp reprezint mp irea timpului de execu ie al CPU ntre
toate procesele (task-urile) active din sistemul de calcul. Cuantele de timp alocate
fiec rui proces pot fi inegale de la un proces la altul. Viteza de prelucrare poate
cre te astfel mai mult dect n cazul multiprogram rii (vezi cazul particular din
figura 2.28).
44
Tipuri de arhitecturi
45
46
2.3.1. Mainframe-uri
Un mainframe este un computer mare, folosit de institu ii guvernamentale i
companii pentru procesarea datelor importante n statistic , recens minte, cercetare
i dezvoltare, proiectare, prognoz , planificarea produc iei, tranzac ii financiare etc.
Ca aspect exterior, primele mainframe-uri ar tau ca ni te dulapuri uria e de metal.
Cu trecerea anilor, tehnologiile de fabrica ie s-au dezvoltat, m rimea fizic a
mainframe-urilor a sc zut, iar viteza lor de calcul a crescut foarte mult.
La nivelul anului 2008, prin mainframe se n elege un calculator compatibil
cu modelele de tip IBM System/360 (1965). Actualmente, cel mai modern model
de la IBM este System z10. Sunt considerate mainframe-uri calculatoarele actuale
de tip: Nova (Fujitsu-Siemens), DPS (Groupe Bull), NonStop (Hewlett-Packard),
ClearPath (Unisys) i cele compatibile IBM System z9 (Hitachi, Platform Solutions).
Un mainframe poate rula sau g zdui mai multe sisteme de operare simultan,
func ionnd ca mai multe ma ini virtuale. Un mainframe poate nlocui astfel chiar
i cteva sute de servere de dimensiuni mici (de exemplu, n aplica ii web),
reducnd costurile de ntre inere, dar men innd un nivel ridicat de siguran .
Tipuri de arhitecturi
47
2.3.2. Supercalculatoare
Un supercalculator este un calculator complex cu destina ie special , compus
din mai multe procesoare care acceseaz aceea i memorie central i care
func ioneaz concomitent i coordonat, n cooperare strns , astfel nct
supercalculatorul poate atinge o performan total de calcul foarte ridicat . Modul
de operare al supercalculatoarelor este calculul paralel. Num rul de procesoare
interconectate ale unui supercalculator dep
te la anumite modele chiar i
100.000.
Pentru a men ine costul unui asemenea supercalculator la un nivel rezonabil,
exist arhitecturi care fac uz de procesoare mai ieftine i mai lente, dar foarte
numeroase, grupate n a a-numite cluster-e.
Printre primele firme care au produs supercalculatoare pentru pia s-a
num rat firma Cray (modelul Cray-1 din 1976 a atins viteza de calcul de 130
Mflops). n acest domeniu, exist o list (actualizat de dou ori de an) a celor mai
rapide 500 de supercalculatoare din lume (Top 500), care se bazeaz pe testul
standardizat numit Linpack. Pe lng supercalculatoarele comerciale, exist i linia
supercalculatoarelor militare.
Exemplu: arhitectura supercalculatorului bazat pe IBM BlueGene/L.
Modelele IBM BlueGene de in momentan (2008) primele dou locuri n Top
500. Calculatorul se bazeaz pe un nou concept, care renun la cre terea frecven ei
de ceas n favoarea mic or rii componentelor, cre terii densit ii acestora i
reducerii consumului de putere. Reducerea frecven ei de ceas este compensat prin
rirea gradului de paralelism, folosind un num r mai ridicat de procesoare.
Procesorul de baz este un PowerPC 440 la 700 MHz. Dou astfel de
procesoare sunt amplasate pe un cip mpreun cu o memorie cache L3 de 4 MB
partajat i 2 KB memorie cache L2 pentru fiecare procesor. Fiecare procesor are
dou porturi de nc rcare i unul de stocare c tre memoriile cache L2, func ionnd
cu 8 bi i/ciclu. Aceasta este jum tate din banda necesar celor dou unit i de
virgul mobil (FPU). Procesoarele au o memorie cache L1 de 32 KB pentru
instruc iuni i date, n situa ii favorabile atingnd performan e de 2,8 Gflops/2. Se
observ c memoria cache L1 este mai mare dect L2, un lucru neobi nuit, care
permite ns atingerea unor viteze de procesare mai mari.
Arhitectura modelului IBM BlueGene/L este reprezentat n figura 2.29.
Sistemul este alc tuit astfel: sunt introduse dou cipuri pe o plac cu o
memorie de 512 MB, aisprezece asemenea pl ci sunt plasate pe o alt plac nod,
iar 32 de pl ci nod sunt introduse ntr-un a a-numit cabinet. A adar, un cabinet
con ine 1024 cipuri (2048 CPU). Pentru configura ia maxim , se folosesc 64 de
cabinete cuplate, care formeaz un sistem cu 65.356 cipuri i 130.712 CPU.
n modul normal de operare, o unitate de procesare a unui cip este folosit
pentru calcule, iar cealalt , pentru sarcinile de comunicare. n acest fel,
performan a de vrf teoretic a sistemului este de 183,5 Tflops. Dac necesit ile
de comunicare sunt mici, se pot folosi ambele procesoare pentru calcule, dublnd
viteza de vrf, ajungnd la 360 Tflops.
48
Din punct de vedere al interconect rii, BlueGene/L posed mai multe re ele:
dou re ele pentru conectarea procesoarelor, o re ea inel 3D i o re ea arbore.
Re eaua inel este folosit pentru comunica ii generale, iar cea arbore pentru
comunica ii colective: broadcast, opera ii de reducere etc. L rgimea de band a
re elei arbore este de dou ori mai mare dect a re elei inel, ajungnd la 350 MB/s
(fa de 175 MB/s).
Performan ele sistemului ajung la 280,6 Tflops pentru testul Linpack. n
urma testului, s-a efectuat rezolvarea unui sistem liniar de N = 1.769.471 ecua ii.
Eficien a rezultat a fost de 76%.
Supercalculatoarele care au la baz
modelul IBM BlueGene/L
implementeaz arhitectura masiv paralel .
Aceasta const ntr-un num r de procesoare (de obicei, foarte mare de
ordinul miilor) interconectate i controlate de un singur computer central. Fiecare
CPU are memoria sa i spa iul de date propriu, care con ine i o copie a sistemului
de operare. Toate blocurile CPU comunic ntre ele cu ajutorul unor interconect ri
de foarte mare vitez .
Tipuri de arhitecturi
49
50
IBM 370/168
Tipuri de arhitecturi
51
52
Astfel, cele dou CPU sunt servite de dou interfe e paralele cu magistrala
principal a sistemului, iar arbitrarea traficului pe aceasta este efectuat de un
controler specializat. Accesul la magistral este multiplexat, astfel c la un anumit
moment de timp i pentru o durat bine stabilit (fix sau adaptat sarcinii curente)
accesul la magistral l are doar un singur procesor. Aceste tipuri de scheme pot
cuprinde zone de memorie cache comune (integral sau par ial), iar magistrala poate
fi cu l ime variabil sau cu adaptare dinamic la cereri.
Tipuri de arhitecturi
53
Pentium II biprocesor
54
Cre terea performan elor este realizat prin utilizarea magistralei punct-lapunct (Point-to-Point) i a modului snoop. Modul snoop permite citirea datelor de
tre un procesor din cel lalt procesor (prin intermediul Northbridge-ului),
nemaifiind necesar accesarea memoriei. Acest mod elimin tehnica prin care
datele necesare unuia din cele dou procesoare erau nscrise n memorie de c tre
primul procesor i apoi citite de c tre al doilea.
AMD K7 biprocesor
Microprocesorul AMD K7 lucreaz pe magistrala ultrarapid EV6 la
frecven a de 200 MHz. Astfel, K7 poate folosi memorii foarte rapide i cu l rgime
de band mare, cum este Rambus DRAM. Datorit suportului multiprocesor al
protocolului de magistral EV6, sistemele AMD pot fi folosite n domeniul sta iilor
de lucru i al serverelor. Arhitectura EV6 permite o flexibilitate ridicat , cu
facilit i de tipul topologiei punct-la-punct i clock-forwarding. Magistralele de
date i de adrese sunt decuplate, procesorul putnd s emit cereri n timp ce
prime te date i comenzi de la logica de sistem. Tot aici sunt gestionate
transferurile cu sistemul, c tre memorie sau c tre magistralele AGP i PCI.
Schema bloc a acestei arhitecturi este prezentat n figura 2.36.
Tipuri de arhitecturi
55
56
Tipuri de arhitecturi
57
58
Tipuri de arhitecturi
59
Exist mai mul i factori care limiteaz performan a real a unui sistem
multinucleu. n primul rnd, magistralele de sistem i de memorie sunt
partajate, astfel nct devin gtuiri (bottlenecks) care limiteaz fluxul
de date c tre nucleele multiple ale procesoarelor, n acela i mod n care o
osea cu prea pu ine benzi de circula ie produce uneori blocaje.
Intel Core 2
Procesoarele Intel Core 2 Duo sunt produse folosind tehnologia de fabricare
Intel pe 65 nm. Versiunea pentru desktop-uri a procesoarelor furnizeaz o cre tere
de 40% a performan ei i este cu peste 40% mai eficient din punct de vedere al
consumului de energie, n compara ie cu cel mai bun procesor Intel anterior.
Potrivit anali tilor independen i, procesoarele c tig 9 din cele 10 teste majore de
performan pentru desktop-uri, servere i calculatoare destinate jocurilor.
Familia de procesoare Intel Core 2 Duo este format din 5 procesoare pentru
platforme desktop destinate afacerilor, utiliz rii individuale i entuzia tilor pentru
tehnologie, precum i din 5 procesoare pentru notebook-uri.
Familia de procesoare Intel Core 2 Duo este bazat pe micro-arhitectura Intel
Core. Prin intermediul celor dou nuclee de execu ie, procesoarele pot executa cu
vitez un num r mai mare de instruc iuni. De asemenea, procesoarele pot opera
mai rapid la lansarea simultan n execu ie a mai multor aplica ii, de exemplu,
scrierea unui e-mail n acela i timp cu desc rcarea de muzic i scanarea antivirus.
Procesoarele Dual-core contribuie la mbun irea execu iei programelor, de
exemplu, n cazul vizion rii unor clipuri high-definition sau al protej rii PC-ului n
timpul tranzac iilor financiare pe Internet, crescnd, de asemenea, autonomia
bateriei n cazul notebook-urilor, care pot deveni astfel mai sub iri i mai u oare.
Inova iile aduse de Intel prin introducerea arhitecturii Intel Core 2 (Duo i
Exteme) sunt urm toarele:
Intel Wide Dynamic Execution mbun
te performan a i eficien a,
ntruct fiecare nucleu de execu ie poate realiza pn la 4 instruc iuni simultan,
folosind un pipeline eficient n 14 stagii.
Intel Smart Memory Access mbun
te performan a sistemului,
diminund laten a cipurilor de memorie i optimiznd astfel utilizarea l rgimii de
band disponibile pentru furnizarea datelor c tre procesor cnd i unde este nevoie.
Intel Advanced Smart Cache include o memorie cache L2 comun ,
proiectat pentru a reduce consumul de energie prin mic orarea traficului de
memorie, i m re te performan a, permi nd unui nucleu de execu ie s utilizeze
ntreg cahe-ul atunci cnd cel lalt nucleu nu este folosit. Aceast func ie este
asigurat pentru toate segmentele de pia : server, desktop i notebook.
Intel Advanced Digital Media Boost dubleaz efectiv viteza de execu ie a
instruc iunilor folosite cu prec dere n aplica iile grafice i multimedia.
Intel 64 Technology aceast mbun ire adus arhitecturii Intel pe 32 de
bi i ofer suport pentru procesarea pe 64 de bi i i permite procesorului s acceseze
o cantitate mai mare de memorie.
Nucleul de execu ie al procesorului Intel Core este reprezentat n figura 2.40.
Caracteristicile func ionale ale acestei arhitecturi sunt expuse n cele ce urmeaz .
60
Tipuri de arhitecturi
61
Pipeline-ul
Intel Core are un pipeline realizat n 14 stagii, la fel de lung ca la Power PC
970, aproximativ jum tate din cel de la Pentium 4 Prescott (~ 30 etape) i pu in mai
lung dect cel de la P6 (12 etape). Aceasta nseamn c Intel Core este proiectat
pentru o cre tere lent a vitezei de ceas i nu scaleaz la fel de rapid ca Pentium 4.
Fereastra de instruc iuni
Deoarece partea din spate este mult mai lat dect a predecesorilor, buffer-ul
de reorganizare (Reorder Buffer, ROB) a crescut la 96 de intr ri, de la 40 ct avea
Pentium M, iar sta ia de rezervare (Reservation Station, RS) a fost m rit .
Fereastra de instruc iuni din Intel Core a fost m rit nu numai fizic (ROB +
RS), ci i virtual. Macro-fuziunea i micro-opera iile (descrise anterior), permit lui
Intel Core s re in mai multe instruc iuni cu un num r mai mic de resurse
hardware.
62
Fig. 2.42. Structura hardware pentru decodarea instruc iunilor din arhitectura Intel Core.
arhitectura simplificat
a procesorului
Tipuri de arhitecturi
63
64
Tipuri de arhitecturi
65
67
68
Rezult c :
P(t) = Ni Np Tc (sec).
(3.1)
69
70
3.2. Memoria
Memoria reprezint acea parte a calculatorului n care sunt stocate
programele i datele. Practic, de aici procesorul preia datele de care are nevoie i
tot aici scrie rezultatul. Unitatea de memorie este o cifr binar care poate lua
numai dou valori: 0 sau 1.
Microprocesorul are capacitatea de a memora att datele care urmeaz a fi
prelucrate, ct i rezultatele intermediare. Se observ c rolul s u principal este de a
prelucra i transmite datele. Capacitatea de memorare este mic , neputnd stoca, de
exemplu, programe.
Sistemul de memorie al unui calculator reprezint ansamblul unit ilor de
memorie, mpreun cu algoritmii necesari pentru controlul transferurilor i
memorarea datelor, algoritmi care pot fi implementa i hardware sau software.
Sistemul de memorie include att loca iile de memorie propriu-zise, ct i circuitele
necesare pentru adresarea loca iilor i controlul opera iilor de citire i scriere. O
parte din aceste circuite se g sesc n unitatea de memorie respectiv , altele sunt
externe, fiind de obicei integrate n controlerul unit ii de memorie.
Obiectivul principal n proiectarea oric rui sistem de memorie este realizarea
unei capacit i de memorare adecvate sistemului de calcul, cu un nivel acceptabil
de performan e, la un cost rezonabil. Trebuie subliniat faptul c nu ntotdeauna
obiectivul este acela de a ob ine o capacitate de memorare ct mai mare.
71
1
[cuv/s].
tA
(3.2)
Timpul de ciclu la o unitate de memorie (tC) este timpul minim ntre dou
accese succesive i reprezint timpul din momentul n care o unitate master
lanseaz o comand spre unitatea de memorie i pn cnd poate lansa o nou
comand la aceea i unitate de memorie. Uzual, tC > tA, diferen a lor numindu-se
timp de revenire (tR = tC tA). Acesta reprezint timpul minim necesar pentru
inactivarea primei comenzi, pn la activarea celei de-a doua.
Rata de transfer (rT) este inversa timpului de ciclu i reprezint cantitatea
maxim de informa ie (exprimat n cuvinte pe secund ) care poate fi transferat
la/de la memorie ntr-o secund :
rT =
1
[cuv/s].
tC
(3.3)
CT
[cost/cuv].
CM
(3.4)
Cu ct memoria este mai rapid , cu att costul unitar este mai mare.
Modul de acces la loca iile unit ii de memorie arat ordinea n care
informa ia memorat poate fi accesat . Acesta poate fi serial sau paralel.
72
Dac loca iile de memorie pot fi accesate n orice ordine, iar timpul de acces
este independent de loca ia accesat , atunci accesul este aleator, iar unitatea de
memorie se nume te memorie cu acces aleator (Random Access Memory, RAM).
n general, memoriile semiconductoare sunt memorii cu acces aleator.
Prin ierarhizarea unit ilor de memorie, blocurile de date cu probabilitatea
cea mai mare de accesare sunt aduse pe niveluri superioare, mai aproape de
unitatea central (localizare spa ial ). Dintre acestea, datele cele mai recent
accesate sunt p strate n apropierea procesorului (localizare temporal ).
73
74
Plecnd de la aceste constat ri, memoria cache con ine la un moment dat
cpii ale unor date din memoria principal . nainte de orice acces la memoria
principal , se verific dac nu cumva informa ia c utat se g se te n memoria
cache. Dac aceasta exist , se preia de acolo cu o vitez superioar .
Memoria intermediar , numit i memorie cache pentru supor i externi sau
memorie cache de disc (Disk-Cached Memory), este plasat ntre memoria
principal i memoria secundar , ac ionnd ntr-o manier similar memoriei
cache. Are rol de memorie tampon, care p streaz blocurile de date cel mai recent
accesate de un program, duplic ri ale celor din memoria secundar .
3.2.2.3. Memoria extern
Pentru a utiliza datele memorate n memoria extern , acestea trebuie aduse
mai nti n memoria principal . Prin compara ie cu memoria intern , memoria
extern se caracterizeaz prin vitez de acces mai sc zut , cost mai redus,
capacitate mai mare, avnd rolul de a m ri spa iul de memorare al unui sistem de
calcul. n memoria extern sunt stocate i programele cu ajutorul c rora se realizeaz
prelucrarea datelor. Accesul la memoria extern nu se face direct, ci prin intermediul
memoriei interne. n compara ie cu memoria intern , memoria extern este:
nevolatil ,
cu acces pozi ional i timp de acces mai mare,
cu vitez de transfer mai mic ,
cu cost mai redus,
cu capacitate mult mai mare,
de tip read-write,
cu densitate de memorare variabil de la un echipament la altul i de la
un suport la altul (magnetic, optic, semiconductor).
Memoria secundar este organizat pe un suport extern de memorie, de
regul disc magnetic, i are rolul de a realiza o extindere a memoriei principale,
conform conceptului de memorie virtual , care se refer la capacitatea procesorului
de a utiliza un spa iu de memorie extern pentru a simula o capacitate mai mare a
memoriei interne disponibile. Altfel spus, este vorba de capacitatea procesorului de a
accesa un spa iu de adrese care dep
te spa iul de adrese al memoriei principale.
Acest concept a ap rut nc din anul 1960, iar la PC este disponibil ncepnd cu seria 286.
Memoria suplimentar poate fi de mai multe tipuri: memorie expandat ,
memorie extins i memorie de arhivare sau ter iar .
Memoria expandat este o memorie suplimentar la calculatoarele de tipul
PC, pe care utilizatorul o acceseaz prin intermediul mecanismului EMS (Extended
Memory Specification). Este alc tuit din bancuri de memorie de 64 KB RAM i
este gestionat de un program-sistem specializat. numit EMM386.EXE (n sistemul
de operare MS-DOS).
Memoria extins este memoria suplimentar accesibil utilizatorului prin
mecanismul XMS (eXtended Memory Specification), care poate fi implementat pe
procesoare avnd cuvinte de adres de 32 bi i. Programele trebuie scrise ca
utiliznd special aceste mecanisme. Programul-sistem care gestioneaz acest tip de
memorie n sistemul de operare MS-DOS este HIMEM.SYS.
75
76
77
78
ROR (RAS Only Refresh) este o metod de mprosp tare din exterior,
prin care se transmit memoriei adresa de rnd (AR) i semnalul RAS ,
79
80
Adresa valid
(nalt impedan )
Date valide (citite)
tAR
tMEMR
tC
Semnale de adres
S. de c-d MEMW\
(scriere memorie)
Semnale de date
(nalt impedan )
Date valide (scrise)
tAW
tMEMW
tC
81
Observa ii:
1. la citire, data este generat dup apari ia semnalelor de adres i de
comand i se men ine un timp scurt dup dezactivarea acestora;
2. la scriere, data trebuie s apar pe magistral naintea semnalului de scriere
i s fie valid pe toat durata de activare a semnalului de comand ;
3. timpul de acces acoper ntrzierile care apar ntr-un modul de memorie
datorit circuitelor de decodificare a adresei i de selec ie a
amplificatoarelor de intrare sau de ie ire;
4. proiectantul trebuie s aleag circuite de memorie cu parametri de timp
acoperitori pentru restric iile impuse pe magistral i s ia n calcul
ntrzierile produse de circuitele de amplificare din interfa
i de pe
magistral .
Exist dou moduri de organizare a octe ilor n memorie, i anume:
a) Big Endian;
b) Little Endian.
Exemplu. Se consider c se lucreaz pe cuvinte de 32 bi i. Cele dou
moduri de organizare a octe ilor sunt reprezentate n figura 3.9.
Fig. 3.9. Modurile de organizare a memoriei de tip Big Endian (a) i Little Endian (b).
82
Adres linie
Adres coloan
RAS\
CAS\
WR\
Date
tRAS
Date citite
tCAS
CAS
tacces
tciclu
Fig. 3.10. Ciclu de citire din memorie.
Adrese
Adres linie
Adres coloan
RAS\
CAS\
WR\
Date
tRAS
Date de scris
tCAS
CAS
tacces
tciclu
Fig. 3.11. Ciclu de scriere n memorie.
Adrese
Adres linie
RAS\
CAS\
WR\
Fig. 3.12. Ciclu de remprosp tare a memoriei.
83
84
85
Arhitectura dual-channel
Motivul care a dus la dezvoltarea acestei arhitecturi a fost apari ia unui
bottleneck ntre procesor i memorie. Arhitectura dual-channel presupune o
tehnologie prin care se poate dubla transferul dintre RAM i controlerul de
memorie. Controlerele de memorie care suport dual-channel utilizeaz pentru
transfer dou canale de date de 64 bi i, rezultnd o l ime a c ii de date de 128 bi i.
Pentru a putea beneficia de avantajele arhitecturii dual-channel, este nevoie de
dou sau mai multe module de memorie instalate n bancurile corespunz toare. De
obicei, aceste bancuri sunt colorate diferit pe placa de baz . Cele dou canale permit
accesul fiec rui modul de memorie la controler, crescnd astfel l rgimea de band .
Teoretic, nu este absolut necesar ca cele dou module de memorie s fie identice, dar
acest lucru este recomandat pentru a evita eventualele probleme de compatibilitate.
De asemenea, se pot folosi un modul single-sided i unul double-sided, dar c tigul
de performan i fiabilitate depind foarte mult de controlerul de memorie.
n cazul n care pe o plac de baz exist dou perechi de socket-uri DIMM
din bancuri diferite (n general, culoarea socket-ului identific bancul c ruia acesta
apar ine), se poate instala o pereche de dou module n bancul 0 i o pereche de
alt capacitate n bancul 1, att timp ct acestea func ioneaz la aceea i vitez . n
acest mod, sistemul va folosi arhitectura dual-channel.
Chiar i module care func ioneaz la frecven e diferite pot fi folosite n
modul dual-channel, dar, n acest caz, toate modulele vor rula la frecven a celui
mai lent modul. De i arhitectura permite cel pu in teoretic toate aceste
combina ii, foarte multe pl ci de baz au probleme cu anumite module de memorie
dac urmeaz s le foloseasc n mod dual-channel. Tocmai din acest motiv este
recomandat s se utilizeze perechi identice de module.
Merit re inut faptul c arhitectura dual-channel este o tehnologie care ine
de pl cile de baz , i nu de memorii. Cu alte cuvinte, orice dou module de
memorii compatibile vor suporta att opera ii single-channel, ct i dual-channel.
86
87
88
89
90
91
92
pentru magistrale de memorie de 100 MHz. Cipurile actuale au anumite limite, care
reduc viteza la aproape 66 MHz. SDRAM-urile nu pot opera la viteze mai mari de
100 MHz, pentru c sloturile SIMM-urilor devin nesigure la frecven e mai mari.
Structura favorizeaz opera iile n regim burst. Se poate programa num rul
de loca ii dintr-un burst la valorile de 1, 2, 4, 8 octe i sau o pagin de memorie.
Accesul ncepe la o adres specificat i continu cu adresele succesive, pn la
num rul de loca ii programate. Circuitul de memorie accept mai multe tipuri de
comenzi, fiecare fiind specificat printr-o combina ie a semnalelor de intrare.
Ratele de transfer cerute de diverse tehnologii de memorie pentru starea de
teptare zero la o vitez de transfer dat pe magistral sunt prezentate n tabelul 3.1.
93
Tabelul 3.1
FPM
EDO
BEDO
SDRAM
25 MHz
70 ns
70 ns
70 ns
12 ns
33 MHz
52 ns
70 ns
70 ns
15 ns
50 MHz
N/A
52 ns
70 ns
12 ns
66 MHz
N/A
N/A
52 ns
10 ns
94
95
a cum se observ din figur , unul din atu-urile memoriei RDRAM este c
fiecare cip de memorie poate con ine pn la 32 de bancuri de memorie. Aceste
bancuri sunt individuale i apar in riguros aceluia i cip, spre deosebire de bancurile
SDRAM, care sunt mpr tiate printre mai multe cipuri de memorie. Revenind la
diagram , fiecare banc de memorie are dimensiunea de 1 MB, ceea ce face ca
ntregul cip s aib o capacitate de 32 MB.
Fiecare banc reprezint o matrice DRAM organizat n 512 linii a cte
128 dualoc i (dualoctul este cea mai mic unitate de memorie adresabil de c tre
RDRAM). Fiecare dualoct con ine 16 octe i i, deci, dimensiunea total a liniilor
matricei este de 2 KB. n mod ideal, se poate p stra activ cte o linie din fiecare
din cele 32 de bancuri, pentru a maximiza ansele de a primi datele dintr-o linie
activ . n realitate, ns , pot exista numai 16 bancuri deschise simultan sau, mai
precis, doar jum tate din bancurile existente pe cip.
Figura 3.26 prezint dou opera ii: una de citire i cealalt de scriere din/n
memorie, pentru a ilustra lucrul simultan cu doar jum tate din bancurile disponibile.
Modul de func ionare este urm torul. Atunci cnd procesorul cite te un dualoct
de 16 octe i dintr-un banc, datele respective p sesc bancul i p trund n
amplificatoarele de semnal (numerotate), care sunt plasate de o parte i de alta a
bancurilor de memorie. Data A i Data B reprezint dou jum i ale unui dualoct (cu
8 octe i fiecare), care p sesc bancul de memorie pe c i separate, a a cum se observ
n figura 3.26. Cele dou magistrale care ncadreaz bancurile de memorie au fiecare o
ime de 8 octe i, deci jum tatea dualoctului reprezentat de Data A se va transfera pe
magistrala din dreapta, iar cea reprezentat de Data B pe magistrala din stnga.
De i pe diagram pare c fiecare banc este conectat la 4 amplificatoare de
semnal, de fapt, fiecare pereche de c su e cu aceea i etichet (0/1, 1/2 etc.) plasat
la stnga i la dreapta unui banc constituie un singur amplificator de semnal.
96
97
Diferen a const n faptul c RIMM-urile sunt ata ate pl cii de baz n mod
serial, neputnd exista sloturi de memorie goale. Dac nu exist suficiente module
de memorie RIMM propriu-zise, sloturile de memorie de pe placa de baz r mase
libere vor trebui completate cu module de continuitate, pentru a permite canalului
Rambus s i ating rezisten a de sarcin (termina ia). Din punct de vedere teoretic,
pot exista oricte canale Rambus independente ntr-un sistem, fiecare cu o l rgime
de band de 1,6 GB/s, dar, n practic , num rul canalelor este limitat din
considerente de design al pl cilor de baz .
Un alt factor care complic designul unui subsistem de memorie Rambus
este dat de faptul c semnalului de ceas provenit de la controlerul de memorie i
este necesar un timp att de ridicat pentru a ajunge la cel mai dep rtat modul
RIMM din sistem, nct poate fi defazat de mai multe ori, fa de semnalul ajuns la
primul modul RIMM.
Din acest motiv, canalul Rambus suport pn la cinci domenii pentru
semnalul de ceas, doar pentru a putea p stra o sincronizare ntre transferurile pe
magistrala de memorie. Aceste schimb ri ale domeniilor de tact complic ns i
mai mult arhitectura sistemului de memorie Rambus, prezentat n figura 3.28.
98
99
100
Un alt cost cauzat de cre terea vitezei este necesitatea ncapsul rii cipurilor
n capsule mai scumpe i mai dificil de asamblat, cum ar fi BGA (Ball Grid Array).
Schimbarea capsulelor a fost necesar pentru a men ine integritatea semnalului la
viteze mai mari.
Din punct de vedere al consumului de energie, DDR2 a mai f cut un pas
nainte, necesitnd numai 1,8 V fa de 2,5 V, ct era necesar pentru DDR.
Consumul de energie poate fi redus chiar i mai mult, prin reducerea frecven ei n
situa iile n care nu este necesar o rat de transfer foarte mare. Tensiunea maxim
recomandat este 1,9 V, fiind chiar interzis dep irea acesteia n situa iile n care
stabilitatea memoriei este un factor cheie. Totu i, modulele de memorie ar trebui s
reziste pn la 2,3 V, nainte ca memoria s fie complet distrus .
Pentru folosirea n calculatoarele personale, memoriile DDR2 vin sub forma
unor module DIMM cu 240 de pini, identificate, de obicei, dup rata maxim de
transfer. Cele ase standarde pentru modulele DDR2 sunt prezentate n tabelul 3.2.
Tabelul 3.2
Standardele pentru modulele de memorie DDR2
Numele
standardului
Frecven a
memoriei
(MHz)
Perioada
ceasului
(ns)
Frecven a
magistralei
I/O (MHz)
Transferuri
de date pe
sec. (mil.)
Numele
modulului
Rata max.
de transfer
(MB/s)
DDR-400
100
10
200
400
PC-3200
3200
DDR-533
133
7,5
266
533
PC-4200
4266
DDR-667
166
333
667
PC-5300
5333
DDR-800
200
400
800
PC-6400
6400
DDR-1066
266
3,75
533
1066
PC-8500
853
DDR-1300
325
3,1
650
1300
PC-10400
10400
101
Frecven a
memoriei
(MHz)
Perioada
ceasului
(ns)
Frecven a
magistralei
I/O (MHz)
Transferuri
de date pe
sec. (mil.)
Numele
modulului
Rata max.
de transfer
(MB/s)
DDR3-800
100
10
400
800
PC-6400
6400
DDR3-1066
133
7,5
533
1066
PC-8500
8533
DDR3-1333
166
667
1333
PC-10600
10667
DDR3-1600
200
800
1600
PC-12800
12800
102
O tehnologie complet nou , folosit pentru prima dat n cazul DDR3, este
topologia Fly-By. Genera iile anterioare de SDRAM, inclusiv DDR2, utilizau o
topologie stea pentru a mp i datele spre mai multe c i de semnal. Topologia FlyBy utilizeaz o singur leg tur direct c tre toate componentele DRAM, ceea ce
permite un r spuns mult mai rapid din partea sistemului.
Motivul pentru care DDR2 nu s-a putut dezvolta mai mult dect a f cut-o nu
se datoreaz att procesului de fabrica ie, care ar fi trebuit rafinat mai mult, ct
unor limit ri mecanice. n esen , DDR2 nu este preg tit s ating viteze mai mari.
Teoretic, acest lucru ar fi posibil, dar, practic, tehnologia mecanic dezvoltat pn
azi nu permite acest lucru. La frecven e mai mari, DIMM-ul ncepe s ntmpine
probleme n ceea ce prive te integritatea semnalului. n cazul topologiei stea
folosite de DDR2, aceast problem s-ar rezolva dac s-ar reu i echilibrarea tuturor
ramurilor. Din p cate, efortul necesar pentru a face acest lucru este peste limitele
fizice din ziua de azi.
Pentru DDR3, integritatea semnalului este rezolvat la nivelul fiec rui modul
DRAM, n locul ncerc rii unei echilibr ri la nivelul ntregii platforme de memorie.
Acum, att adresele, ct i semnalele de control, sunt transmise pe aceea i cale.
Practic, topologia Fly-By elimin limit rile cauzate de echilibrarea mecanic
folosit n DDR2, nlocuind-o cu un semnal automat de ntrziere, generat de c tre
controlerul de memorie. O alt inova ie prezent la DDR3 const n apari ia unui
pin de reset. Acest pin permite resetarea unui modul de memorie f
resetarea
ntregului sistem, ceea ce duce la o sc dere a timpului i a energiei pierdute.
De remarcat este i prezen a unui senzor de temperatur , pentru prima dat
la memoriile DDR, senzor care detecteaz momentul n care modulul se apropie de
un anumit prag de temperatur i, n consecin , poate scurta intervalele de refresh.
Acest sistem de siguran permite i el o reducere a consumului de energie.
Un alt element caracteristic DDR3 este sistemul XMP (eXtended Memory
Profile). Acest sistem, implementat pe placa de baz , permite utilizatorului unei
configura ii alc tuite dintr-un procesor Intel i o memorie DDR3 s realizeze un
overclocking foarte simplu. Doar prin selectarea unei anumite op iuni, sistemul va
decide singur factorii de multiplicare, tensiunile i frecven ele pn la care poate fi
for at ceasul pentru a c tiga un plus de performan .
XDR DRAM (eXtreme Data Rate DRAM)
Memoriile XDR-RAM sunt considerate ca fiind succesorul memoriilor
Rambus (RDRAM), fiind n concuren direct cu DDR2, SDRAM i GDDR4
(memoriile grafice pentru pl cile grafice din familia GeForce FX). XDR-ul a fost
proiectat n special pentru sisteme mici, care necesit o l rgime de band ridicat ,
i pentru sisteme GPU (Graphical Processing Unit) de top. Aceast tehnologie
elimin problemele cauzate de ntrzierile ridicate, prezente la primele modele
RDRAM. De asemenea, XDR DRAM permite o l rgime de band per pin mult mai
mare, ceea ce duce la sc derea costurilor de produc ie a pl cilor de circuite
integrate. Sc derea costurilor este posibil datorit faptului c sunt necesare mai
pu ine c i de transmisie a datelor pentru aceea i l rgime de band .
103
104
105
MoSys prezint 1T-SRAM ca fiind solu ia ideal pentru aplica iile bazate pe
SOC-uri (System-On-a-Chip se ncearc integrarea tuturor componentelor unui
computer sau a unui sistem electronic ntr-un singur circuit integrat), cum ar fi
microcontrolere, DSP-uri, blocuri de memorie, timer-e, regulatoare de tensiune etc.
Memoriile 1T-SRAM sunt organizate sub forma unei matrice de mici
bancuri de memorie (n general, 128 linii a cte 256 de bi i fiecare, rezultnd un
total de 32 Kb) conectate la o memorie cache de dimensiunea unui banc i la un
controler de memorie.
Chiar dac , n compara ie cu DRAM, 1T-SRAM este ineficient n ceea ce
prive te spa iul, lungimea mai mic a cuvintelor permite atingerea unor viteze mult
mai mari, reu indu-se astfel realizarea unui ciclu RAS la fiecare acces. Fiecare
acces se face la cte un banc, permi nd astfel bancurilor nefolosite s fie
reactualizate n acela i timp. n plus, fiecare linie citit este copiat i n memoria
cache. n eventualitatea unor acces ri repetate la acela i banc, exist dou variante:
fie sunt accesate linii diferite, caz n care toate liniile vor fi reactualizate automat,
fie aceea i linie este accesat de mai multe ori. n cazul celei de-a doua variante,
urm toarele citiri se vor face din memoria cache, acordndu-se astfel timpul
necesar pentru realizarea remprosp rii.
Pn n prezent (mai 2008), au fost lansate patru genera ii de memorii
SRAM cu un tranzistor:
1. 1T-SRAM original, care are o dimensiune de dou ori mai mic dect
6T-SRAM i consum mai pu in de 50% fa de acesta.
2. 1T-SRAM-M, care este o variant cu un consum mult mai mic n modul
stand-by, fiind proiectat pentru uzul n sisteme portabile, de genul
telefoanelor mobile.
106
107
108
109
110
111
112
113
114
115
(3.5)
unde:
C = num rul liniei din memoria cache;
A = adresa din memoria principal ;
L = num rul de linii din memoria cache.
Pentru exemplul considerat, L = 128 i C = A mod128. Func ia de mapare
poate fi implementat simplu, utiliznd adresa de 16 bi i. Cei 3 bi i mai pu in
semnificativi, cmpul cuvnt (offset), identific un cuvnt (octet) unic n cadrul
unui bloc al memoriei principale. Restul de 13 bi i specific unul din cele 213 = 8
Kblocuri ale memoriei principale.
Cmpul de 7 bi i, numit linie sau index (slot), indic num rul blocului,
modulo128. Astfel, blocurile 0, 128, 256, , 8064 vor fi amplasate n linia 0;
blocurile 1, 129, , 8065 vor fi amplasate n linia 1, i a a mai departe, pn la
blocurile 127, 255, , 8191, care vor fi amplasate n linia 127.
116
117
(3.6)
K = A mod I,
(3.7)
118
119
includ acea parte a adreselor din memoria principal care sunt implicate n
cmpul linie (index) al memoriei cache.
Att timp ct etichetele cache reprezint doar c iva bi i, ocup spa iu pu in,
putnd fi citite i comparate rapid. Unul dintre avantajele map rii directe este acela
las loc specula iilor rapide i simple. Atunci cnd o adres a fost calculat , i s-a
ata at index cache unic, care ar putea con ine datele. Noua intrare n cache poate fi
citit , iar procesorul i continu lucrul cu acele date pe care le avea nainte de a
termina procesul de verificare, dac adresa cerut se potrive te cu eticheta actual .
Ideea ca procesorul s foloseasc date depozitate n cache nainte ca eticheta
se potriveasc complet poate fi aplicat i la cache-ul asociativ. O parte din
etichet , numit cheie (hint), poate fi folosit pentru a alege una din adresele
cerute, aflate posibil n harta cache. Aceste date pot fi folosite n paralel cu
verificarea ntregii etichete. Tehnica hint lucreaz excelent cnd este folosit n
contextul translat rii adreselor.
Alte tehnici propun un cache oblic (skewed cache), unde indexul c ii 0
este direct, dar indexul c ii 1 este format cu o func ie hash. O func ie hash de
calitate are proprietatea c adresele care intr n conflict cu maparea direct tind s
nu mai aib conflicte cnd sunt mapate cu func ia hash i este mai nepl cut ca un
program s sufere din cauza unui num r nea teptat de mare de conflicte. Pe de alt
parte, exist laten n implementarea func iei hash. n plus, cnd trebuie nc rcat
o nou linie i exclus una veche, ar putea deveni dificil s se determine care dintre
liniile existente a fost ultima folosit , deoarece noua linie intr n conflict cu datele
de la diferi i indec i ai fiec rei c i. Metoda LRU (vezi paragraful 3.2.12.3)
urm re te principiul vecin ii (cache nears) ntr-un cache non-oblic (non-skewed),
mp indu-l pe seturi. A adar, asociativitatea complet are un avantaj major fa
de asociativitatea pe seturi.
3.2.12.2. Eficien a i localizarea datelor n memoria cache
O memorie cache este util numai dac anumite informa ii sunt folosite
frecvent i mult timp. Atunci, acele informa ii merit s fie p strate n memoria
cache. Din fericire, s-a constatat experimental c acest lucru este adesea adev rat.
Aceast observa ie poate fi formulat n mai multe moduri, unul dintre acestea
fiind principiul localiz rii (locality principle). Exist dou feluri de localizare:
localizare spa ial dac este nevoie de unele date, n curnd va fi
nevoie probabil de date aflate n apropierea lor n memorie;
localizare temporal cnd s-au g sit anumite date, foarte adesea
acestea vor fi folosite de mai multe ori.
Acestea sunt doar observa ii, dar se potrivesc destul de bine programelor, a a
cum func ioneaz acestea n calculatoarele actuale. Validitatea observa iilor
permite folosirea de memorii cache. Acesta nu nseamn c nu exist programe
care folosesc prost memoriile cache; dimpotriv , se poate scrie destul de u or un
astfel de program (este o metod eficient de a ncetini calculatorul). Programele
obi nuite ns nu se comport astfel.
120
(3.8)
Dac timpul de citire din memoria cache este TH (hit time), iar timpul pierdut
pn se rateaz este TM (miss time), atunci se poate m sura timpul mediu de acces
la memoria cache cu urm toarea formul :
T = TH H + TM M.
(3.9)
Se observ c timpul unei rat ri (TM) nu este neap rat egal cu timpul de citire
din memoria lent , Tl, deoarece, n cazul unei rat ri, nti trebuie constatat dac
datele sunt n memoria cache, iar, dac nu sunt, se acceseaz memoria lent .
Memoria cache va fi eficient dac T < Tl. Parametrul H depinde de m rimea
memoriei cache: pentru o memorie cache de dimensiunea memoriei lente (caz
limit ), toate datele pot fi inute n memoria rapid i se va ob ine H = 1. Pentru o
memorie cache de dimensiune 0, H = 0, pentru c niciodat datele nu se g sesc n
aceast memorie.
Rela ia ntre m rimea memoriei cache, a memoriei lente i parametrul H nu
este o linie dreapt , ci cre te rapid la nceput, a a cum se observ n figura 3.43.
Din cauza aceasta, o memorie cache relativ redus ca m rime are o importan
mare ca eficien .
121
122
123
Bitul D (dirty data) este pus pe 0 la nc rcarea ini ial a blocului n cache. La
prima scriere a acelui bloc, bitul se pune pe 1. Evacuarea propriu-zis a blocului se
face doar dac bitul D = 1. Practic, prin acest bit se minimizeaz evacu rile de
blocuri n memoria principal , pe baza principiului c un bloc trebuie evacuat
numai dac a fost scris n cache. n acest sens, din punct de vedere al acces rilor de
scriere de c tre procesor (depunerea n memorie a rezultatelor), exist trei posibilit i:
metoda Write Through vezi figura 3.46 , n care se utilizeaz traseul
invers al citirii datelor, blocurile fiind depuse mai nti n memoria cache
intern , apoi n cache-ul extern i n final n memoria RAM;
metoda Posted Write, prin care din memoria cache este rezervat o
anumit por iune care va juca un rol de buffer i n care vor fi memorate
blocuri de date pn cnd magistrala memoriei devine disponibil ,
moment n care buffer-ul i transfer con inutul n RAM.
n vederea men inerii coeren ei memoriilor cache, cu prec dere n sistemele
multiprocesor, exist dou posibilit i, n func ie de procesul de scriere:
Write Invalidate, prin care CPU care scrie determin ca toate copiile din
celelalte memorii cache s fie invalidate nainte ca ea s i modifice
blocul din cache-ul propriu;
Write broadcast, prin care CPU care scrie pune data de scris pe magistrala
comun , spre a fi actualizate toate copiile din celelalte cache-uri.
Ambele strategii de men inere a coeren ei pot fi asociate cu oricare dintre
metodele de scriere, dar de cele mai multe ori se prefer Write Back cu invalidare.
124
situa ie n cache
ac iune n cache
citire
miss
citire
hit
compararea marcajelor/etichetelor
(tag)
scriere
miss
scriere
hit
125
Fig. 3.48. Rata de pierderi (miss rate) n func ie de capacitatea memoriei cache.
Graficul din figura 3.48 ilustreaz performan ele memoriei cache, ob inute
pe un benchmark pentru ntregi din SPEC2000. Aceste benchmark-uri reprezint
gradul de nc rcare al unei sta ii de lucru. Rata de pierderi n cazul asociativit ii
este sensibil superioar celei pentru mapare direct . Diferen ele ob inute se explic
prin utilizarea algoritmului de nlocuire LRU. Se observ , de asemenea, c pentru
memorii cache de dimansiune foarte mare, decalajele devin nesemnificative.
3.2.12.7. Tipuri de celule cache
n func ie de modul de citire a cuvintelor, celulele memoriei cache pot fi:
asincrone, la care opera ia de citire a unui cuvnt se face n dou etape:
se depune adresa, apoi se transfer datele, pentru fiecare cuvnt fiind
necesar acela i ritual. Aceste cipuri se livreaz sub form DIP.
126
sincrone, pentru care accesul se face n mod burst (se depune o singur
adres , iar transferul se face pentru patru cuvinte simultan, primul cuvnt
cu adresa indicat de controlerul de cache i urm toarele trei). Timpul de
acces scade destul de mult, ajungnd pn la 9 ns. Cipurile sincrone sunt
implementate direct prin lipire pe placa de baz a sistemului.
pipe-line burst cache, care este prev zut la ie ire cu registre speciale, n
care datele citite sunt stocate temporar. Astfel, este posibil o nou
adresare, practic, n acela i timp cu preluarea datelor de c tre
microprocesor din registrele de stocare (latch). Timpul de acces scade
foarte mult (chiar la 4 ns), fapt care duce la performan e deosebite pentru
sistemele dotate cu astfel de celule de memorie cache.
127
128
129
Nucleul K8 are patru memorii cache: una pentru instruc iuni, una pentru
blocul TLB, una pentru datele TLB-ului i una pentru date. Fiecare dintre aceste
cache-uri este specializat:
1. Cache-ul pentru instruc iuni p streaz cpii ale celor 64 de linii ale
memoriei i aduce din memorie 16 B la fiecare ciclu. Fiecare octet din acest cache
este depozitat n 10 bi i n loc de 8, cu un marcaj suplimentar de bit al limitelor
instruc iunilor (acesta este un exemplu de precodare). Cache-ul are doar protec ie
de paritate, mai degrab dect ECC, deoarece informa ia de paritate ocup spa iu
mai pu in, iar datele avariate pot fi nlocuite de date proaspete aduse din memorie.
2. Instruc iunile blocului TLB p streaz cpii ale intr rilor din tabelul
paginilor (PTE). Fiecare ciclu de instruc iuni adus din memorie are propria sa
adres virtual , translatat cu ajutorul TLB-ului ntr-o adres fizic . Fiecare intrare
are 4 sau 8 octe i n memorie, iar fiecare TLB este mp it n dou sec iuni: una
pentru a p stra PTE-urile care ocup 4 KB din hart i alta pentru a p stra PTEurile care ocup 2 sau 4 MB din hart . mp irea permite o potrivire a circuitului
n fiecare sec iune n mod complet asociativ. Sistemul de operare mapeaz sec iuni
diferite ale spa iului de adrese virtuale cu diferite m rimi ale PTE-urilor.
3. Datele TLB-ului au dou cpii, care con in intr ri identice. Cele dou cpii
permit accesul la dou date per ciclu, pentru a translata adresele virtuale n adrese
fizice. Ca i instruc iunile TLB-ului, i aceasta este mp it n dou tipuri de intr ri.
4. Datele cache-ului p streaz cpii ale celor 64 de linii ale memoriei. Este
mp it n 8 bancuri (fiecare depozitnd cte 8 KB de date) i poate aduce din
memorie doi octe i de date pe ciclu.
130
131
132
Dac OE = 1, ie irile memoriei sunt n starea de impedan nalt (high Z). Tabelul
de adev r din figura 3.51.b este un exemplu care arat o posibilitate de implementare
a 4 func ii binare de cte 3 variabile.
Fig. 3.52. Structura intern a unui cip de memorie ROM cu 1024 cuvinte de 8 bi i.
133
134
135
Ultimii 128 KB rezerva i din zona de memorie superioar (vezi figura 3.53)
sunt utiliza i de componenta BIOS de pe placa de baz . Componenta BIOS este, de
obicei, memorat n cipuri de memorie ROM. Programele din componenta ROM
BIOS controleaz sistemul pe durata pornirii (pn la preluarea controlului de c tre
sistemul de operare) i r mn ca driver-e pentru subsistemele hard pe durata
func ion rii normale a sistemului. Deoarece aceste programe trebuie s fie
disponibile imediat, la pornirea sistemului ele nu pot fi nc rcate de pe discuri (sau
alte dispozitive de memorare).
Principalele func ii ale programelor de pe placa de baz sunt:
autotestarea la punerea sub tensiune (POST);
rutina de nc rcare a sistemului de operare (bootstrap loader) ini iaz
utarea sistemului de operare pe discurile disponibile;
sistemul de baz pentru opera ii de intrare-ie ire (BIOS) este interfa a
soft sau programul principal de control pentru toate componentele hard
ale sistemului.
Acest sistem con ine un prim meniu Standard CMOS Setup , unde se
stabilesc tipul i parametrii unit ilor de disc, tastaturii sau pl cii video, ora i data
curent a sistemului.
Un al doilea meniu Advanced CMOS Setup cuprinde o serie de parametri
reglabili pentru a ob ine maximul de performan . n acest meniu, se pot activa sau
dezactiva memoria cache intern i extern , se poate stabili o parol de intrare n
sistem, ordinea de c utare a sistemului de operare pe disc etc.
Al treilea meniu Advanced Chip-set Setup con ine reglaje foarte fine de
optimizare, cum ar fi configurarea magistralelor sau a st rilor de a teptare ale
microprocesorului.
Datorit u urin ei cu care se poate accesa BIOS-ul, parametrii care definesc
func ionarea general a calculatorului pot fi modifica i foarte simplu, dar
configurarea arbitrar a parametrilor BIOS poate produce deregl ri ale sistemului.
Tot aici se poate men iona unitatea special MMU (Memory Management
Unit), care se ocup cu transferul con inutului memoriei ROM (cel de pe placa de
baz : ROM-ul de sistem, ROM-ul video, segmentele ROM ale unor adaptoare sau
extensii) n memoria de lucru RAM. Este un dispozitiv integrat n microprocesor.
Aceast posibilitate de transfer a rutinelor i datelor ROM n RAM ridic
foarte mult performan ele sistemului, deoarece timpul de acces al memoriei ROM
este foarte mare (150200 ns) i opera iile care implic folosirea con inutului ROM
se desf oar lent. Activarea op iunilor de transfer (shadowing) se face din meniul
BIOS Features Setup din CMOS, prin activarea punctelor de Shadow definite de
adrese specificate (System Shadow, Video Shadow etc.). MMU va dezactiva
automat toate cartu ele ROM al c ror con inut a fost citit i scris apoi n RAM, iar
n continuare va marca aceste zone de memorie RAM n care s-a transferat
con inutul ROM, protejndu-le.
Leg tura memoriei ROM cu exteriorul se face prin magistrala de adrese,
corespunz toare pinilor nota i cu A0Am (pentru detectarea loca iei care con ine
informa ia cerut ) i magistrala de date, pentru transferul datelor, prin pinii nota i
cu D0An, n func ie de num rul de pini al cipului respectiv.
137
MM magistrala memoriei;
MD magistrala de date;
MI/O magistrala de I/O.
Cnd microprocesorul central trebuie s efectueze o opera ie I/O cu un
anumit periferic, el cedeaz aceast opera ie procesorului asociat perifericului;
microprocesorul central transmite canalului informa ia necesar pentru realizarea
opera iei de I/O i i cere acestuia s o execute.
Canalul realizeaz opera ia I/O n mod complet i autonom: procesorul I/O
execut un program de transfer al datelor cu parametrii primi i de la
microprocesorul central; cnd transferul ntre periferic i memorie a fost ncheiat,
procesorul I/O anun microprocesorul central despre efectuarea transferului. Acest
mod de lucru degreveaz microprocesorul central de opera iile I/O, care, de regul ,
sunt mult mai lente dect viteza de lucru a microprocesorului central. n timpul
acestui transfer, microprocesorul central execut alte instruc iuni. Exist
posibilitatea execut rii mai multor transferuri I/O n acela i timp, astfel rezultnd
cre terea performan elor sistemului.
Observa ie. Prezen a celor trei magistrale este specific calculatoarelor
mari. MM permite canalelor I/O s citeasc sau s scrie date direct din sau n
memorie, MI/O asigur comunica ia ntre microprocesorul central i canalele I/O,
iar MD permite microprocesorului central s schimbe informa ii cu memoria
(citirea/scrierea datelor, execu ia programelor etc.).
138
139
140
Registrele de date
O interfa poate asigura transferul de date ntr-un singur sens sau n ambele.
Pot exista mai multe canale de intrare, de ie ire sau bidirec ionale. Pentru fiecare
canal i pentru fiecare sens, se aloc un port (registru) de date, care ocup o
anumit adres n spa iul de adrese I/O al CPU.
Registrele de comenzi
Au rolul de a genera semnalele specifice unui anumit echipament (de
exemplu, pentru hard disk se face selec ia capului de citire, selec ia unit ii de
activare a scrierii etc.). Prin registrele de comand pot fi selectate modurile de lucru
ale interfe ei sau se pot fixa parametrii de transfer (transfer pe octet sau pe bloc,
frecven a de transmisie, formatul datelor transmise etc.).
Registrele de stare
Ofer informa ii despre starea echipamentului i a interfe ei (de exemplu,
dispozitiv ocupat/defect, dat recep ionat , registru de ie ire gol etc.). Aceste
informa ii sunt testate n timpul programului, pentru detectarea eventualelor erori
de transfer sau a defectelor i pentru reglarea vitezei de transfer.
Blocul de selec ie
Genereaz semnalele de validare a porturilor pentru opera iile de scriere i
citire. La selec ie, se utilizeaz semnalele de comand pentru citire/scriere de la/la
periferic (de exemplu, semnalele IOR/ IOW/ n sistemele Intel).
141
Dispozitivul de comand
Este un circuit secven ial sau combina ional, utilizat n cazul unor interfe e mai
complexe, care controleaz func ionarea celorlalte componente ale interfe ei. Pentru
anumite tipuri de interfe e exist circuite specializate de control, numite controlere.
Exemple:
controler de disc flexibil i8272;
controler DMA i8237-5;
controler video MC6845.
Interfa a poate s con in i o memorie ROM sau RAM.
Memoria ROM p streaz driver-ul de interfa , care este identificat la
ini ializarea sistemului i este inclus n rutinele sistemului de operare.
Memoria RAM este utilizat ca buffer ntre memoria principal i periferic.
Necesitatea acesteia apare n cazul fluxurilor mari de date, situa ie n care
sincronizarea perifericului cu frecven a de transfer de pe magistral devine dificil
(de exemplu, interfa a de disc sau interfa a video).
Toate transferurile de informa ii i date, ntre diverse componente ale
sistemului de calcul sau ntre dou sau mai multe sisteme legate ntr-o re ea,
transferuri care se realizeaz de-a lungul i cu ajutorul magistralelor, se desf oar
la nivel de bit, octet, cuvnt sau bloc de octe i. Aceste transferuri de bi i se pot
efectua n dou moduri:
prin transmisie paralel ;
prin transmisie serial .
142
Transferul unui grup de octe i are loc cu o vitez considerabil , dar are
dezavantajul costului ridicat al instala iei fizice, care presupune existen a a 8 fire i
a unei interfe e paralele aparte. De aceea, aceast transmisie se folose te la
echipamentele care vehiculeaz volume mari de date ntr-un interval de timp foarte scurt.
Porturile paralele sunt folosite, n general, la comunica ia unidirec ional
(dar nu n sens strict) i dispun de 25 de pini (vezi figura 3.58).
Semnifica ie
strobe
2...9
bit0...bit7
10
confirmare (ACK)
11
busy
12
13
selec ie
14
15
eroare
16
17
selec ie intrare
18...25
mas
143
spooler (din fi iere de tip rire). De asemenea, orice program utilitar pentru o
imprimant laser rapid ar folosi des posibilitatea de ntrerupere pentru a permite
imprimarea. Dac se folose te acest tip de aplica ii n cazul unui port care nu este
comandat prin ntreruperi, imprimarea se va face foarte lent sau se va opri.
Singura solu ie este s se foloseasc un port comandat prin ntreruperi.
Datorit faptului c sistemele PS/2 cu magistral MCA pot folosi n comun
ntreruperile, ele nu au aceste probleme i toate porturile paralele din aceste sisteme
sunt comandate prin ntreruperi pe IRQ7.
Pentru a configura porturile paralele n sistemele cu magistral ISA, trebuie
se pozi ioneze cteva jumper-e i comutatoare. Deoarece fiecare plac de pe
pia este diferit , trebuie s se consulte manualul pentru a ti cum trebuie
configurat . IBM include aceste informa ii n documenta ia fiec rei pl ci i ofer
manuale tehnice pentru op iuni i adaptoare, ca i manuale de service i ntre inere
hard, care descriu n detaliu pozi iile jumper-elor i comutatoarelor pl cilor
adaptoare IBM. Al i produc tori ofer pur i simplu pe lng plac un manual care
descrie placa i include informa iile de configurare. Sistemele cu magistral MCA
sau PCI i toate sistemele actuale au configurarea automat (plug play) sau
comandat soft.
144
Semnifica ie
Denumire
DCD
RD
TD
DTR
mas de protec ie
GND
DSR
RTS
CTS
RI
145
146
Fig. 3.61. Tipuri comune de modula ie digital (de impulsuri): ASK, FSK, PSK, BPSK.
Fig. 3.63. Constela iile pentru modula iile QAM-16 (stnga) i QAM-128 (dreapta).
147
148
149
150
Fiecare circuit de date sau control func ioneaz doar ntr-o singur direc ie.
Pentru c datele transmise i datele recep ionate folosesc fiecare cte un circuit
separat, interfa a poate func iona n mod duplex. n cadrul standardului, nu sunt
definite formatul caracterelor din irul de date sau tipul de codare a lor.
Standardele RS-232 utilizeaz pentru niveluri de semnal (0 i 1), n afara
intervalului +3Vcc 3Vcc (semnalele cuprinse n acest interval sunt ignorate),
151
urm toarele conven ii: orice tensiune peste +3Vcc este considerat corespunz toare
unui bit de 0, iar sub 3Vcc este considerat corespunz toare unui bit de 1.
Standardul prevede un conector DB25 de tip tat (sau fi ) pentru DTE i un
conector DB25 de tip mam (sau priz ) pentru DCE. Din cei 25 de pini ai
conectorilor, doar 22 sunt folosi i pentru semnale i mas . Deoarece majoritatea
dispozitivelor folosesc doar 9 semnale, sunt folosi i adesea conectori mai mici.
Protocolul RS-232 se bazeaz pe tehnica acordului confirmat (handshake),
iar semnifica ia celor mai uzuale semnale, relativ la DTE, este (vezi tabelul 3.6):
Transmitted Data (TD) transmisia datelor de la DTE la DCE;
Received Data (RD) recep ia datelor de la DCE;
Request To Send (RTS) setat pe 0 de c tre DTE, preg te te DCE-ul
pentru recep ionarea datelor;
Ready To Receive (RTR) setat pe 0 de c tre DTE, indic DCE-ului
faptul c DTE-ul este preg tit s recep ioneze date;
Clear To Send (CTS) setat pe 0 de c tre DCE ca r spuns la RTS,
permite DTE-ului s transmit date;
Data Terminal Ready (DTR) setat pe 0 de c tre DTE, indic faptul c
acesta este gata s fie conectat (dac DCE-ul este un modem, atunci
aceast comand l activeaz );
Data Set Ready (DSR) setat pe 0 de c tre DCE, indic faptul c acesta
este pornit i preg tit s recep ioneze comenzi sau date de la DTE (n
cazul unui modem, DSR-ul este setat pe 0 de ndat ce acesta este gata s
primeasc comenzi);
Data Carrier Detect (DCD) setat pe 0 de c tre DCE, indic faptul c sa stabilit o conexiune cu echipamentul partener;
Ring Indicator (RI) setat pe 0 de c tre DCE, arat c s-a detectat
semnalul corespunz tor apelului (soneriei) telefonice.
Standardele mai noi (RS-422, RS-485 etc.) dezvolt RS-232, urm rind
optimizarea acestuia.
UART
Circuitele integrate folosite ca interfa asincron pentru transmisia serial
sunt denumite UART (Universal Asynchronous Receiver Transmitter). n
componen a lor intr registre de deplasare (shift, vezi figura 3.68), prin intermediul
rora datele n format serial/paralel pot fi convertite n format invers
(paralel/serial).
Un UART tipic are trei sec iuni:
un modul receptor, care prime te de la periferic un semnal serial i l
converte te paralel, dup care l depune pe magistrala de date;
un modul emi tor, care prime te semnal paralel de pe magistrala de
date i l converte te n semnal serial pentru periferic;
un controler de interfa , care gestioneaz activitatea modulelor
receptor i emi tor (vezi figura 3.69). Se folosesc cipurile UART 8251,
16450 (mai vechi) sau UART 16550 i 16550A, mult mai rapide.
152
Fig. 3.68. Intrare serial ie ire paralel (A); intrare paralel ie ire serial (B).
ACIA
Un model similar de interfa universal asincron este ACIA (Asynchronous
Communication Interface Adapter), instalat n blocul de mapare a memoriei i care
recep ioneaz 4 linii de adrese, 3 selec ii de cip i o selec ie de registru. Cipul standard
folosit este MC 6850, cu 24 de pini. Comanda ACIA se realizeaz prin dou perechi
de registre, prima fiind de stare, iar cel de-a doua, de control (vezi figura 3.70).
153
Func ionarea ACIA are la baz dou registre de deplasare (unul de tip readonly i cel lalt, write-only) pentru convertirea semnalelor paralel/serial i
serial/paralel. Comunica ia cu magistrala de date se face prin intermediul unui
buffer de date, cuplat direct la aceasta. Un exemplu tipic de interfa ACIA este
modemul (vezi figura 3.71).
154
USB
Interfa a USB (Universal Serial Bus) a nlocuit interfe ele RS-232 i paralel
n multe situa ii. Astfel, USB este acum cea mai folosit interfa n conectarea
imprimantei, mouse-ului sau scanerului la calculator. USB a fost proiectat pentru
a permite conectarea dispozitivelor periferice printr-un conector standardizat, care
nlocuiasc multitudinea de conectori ai unui calculator, i s mbun easc
func ionalitatea plug play, permi nd dispozitivelor s fie conectate i
deconectate f
a fi necesar repornirea calculatorului. De asemenea, dispozitivele
care consum pu in pot fi alimentate direct prin interfa a USB.
Versiunile standardului USB sunt urm toarele:
USB 1.0, lansat n 1996, define te dou viteze de transfer: 1,5 Mb/s
(Low Speed) i 12 Mb/s (Full Speed);
USB 1.1 , lansat n 1998, define te acelea i viteze de transfer i are dou
tipuri de conectori: seria A i seria B;
USB 2.0, lansat n 2000, define te o a treia vitez : 480 Mb/s (High Speed);
USB 3.0, anun at pentru 2008, va defini viteze de pn la 10 ori mai
mari fa de versiunea anterioar , ajungnd la aproximativ 4,8 Gbit/s.
De i toate calculatoarele actuale sunt echipate cu porturi USB, acestea nu au
nlocuit complet conectorii standard existen i. Monitorul, tastatura, porturile
paralele i cele seriale utilizeaz , n continuare, conectori separa i. Un motiv ar
putea fi arhitectura mai complex a magistralei USB, care trebuie s permit
conectarea unor tipuri variate de periferice. Un alt motiv ar fi c perifericele care
trebuie s con in un distribuitor, cum este monitorul sau tastatura, devin mai
complexe i mai costisitoare.
USB conecteaz mai multe dispozitive la un HCI (Host Controller Interface),
prin intermediul unor hub-uri. USB este complet controlat de HCI. Nu poate exista
dect un singur host pe o magistral la un moment de timp. Un adaos la standardul
USB introduce un protocol (Host Negociation Protocol) care permite negocierea de
host ntre dou dispozitive USB.
155
Orice topologie necesit cel pu in un hub, numit root-hub, ata at direct la HCI.
Un host comunic cu dispozitivele prin intermediul unor canale logice (pipes), care
au ni te terminale logice pe dispozitive numite endpoints (vezi figura 3.72). Uneori
este folosit termenul endpoint pentru a identifica i canalul logic respectiv.
Exist 16 endpoint-uri [0-15] i pipe-uri corespunz toare n fiecare direc ie
(in/out, referindu-se la host), deci un periferic poate avea 32 de pipe-uri active
simultan. Fiecare endpoint poate transfera date ntr-o singur direc ie, deci, fiecare
pipe este unidirec ional. Endpoint-urile 0 pentru in i out sunt ntotdeauna active,
fiind folosite pentru management.
Comunica iile ntre periferice i host se execut prin conexiuni dispozitivhost i host-dispozitiv. Conexiunea de la host la dispozitiv se nume te
downstream, iar conexiunea de la dispozitiv la host se nume te upstream.
Conectorii USB sunt diferi i pentru upstream i downstream i nu pot fi
interschimba i. O comunica ie (transfer de date) nu se poate efectua dect ntre
porturi diferite de upstream i downstream.
Exist dou tipuri de conectori principali: tip A i tip B. Conectorii de tipul A
se folosesc pentru host-uri sau hub-uri i se reg sesc cel mai des pe pl cile de baz
ale PC-urilor. Conectorii de tipul B se g sesc numai la dispozitivele periferice. Nu
pot exista leg turi de cabluri dect de la tipul A de conector la tipul B, dar se pot
si i cabluri care nu respecte aceste specifica ii, numite cabluri directe.
Alte tipuri de conectori sunt mini-USB de tip A i B (mai frecvent utiliza i)
sau AB i micro-USB, folosi i n special pentru dispozitive de dimensiune mai
mic , fiind mai u or de integrat.
Conectorii USB de diferite tipuri sunt reprezenta i n figura 3.73.
Cablul USB folose te 4 fire (vezi figura 3.74): dou pentru putere: (tensiunea
VBUS i masa) i dou pentru semnalele de date (pinii D+ i D). Alimentarea VBUS
este, n general, de 5V (cu o toleran prestabilit ), iar modul de transmisie a
datelor este diferen ial. Modul de codare al datelor este NRZI (Non Return to Zero
Inverted), folosit pentru a trimite date sincronizate i pentru a sincroniza host-ul cu
semnalul de ceas. D+ i D sunt semnale transmise mpreun . n cazul micro-USB,
exist 5 pini (apare n plus un pin de identificare, ID).
156
Descriere
VBUS (4,355,25 V)
D+
GND (0 V)
157
Cablul FireWire con ine 6 fire de cupru (vezi figura 3.76): dou transport
energie, iar celelalte patru sunt grupate n cte dou perechi. Fiecare pereche este
ecranat , ca i ntregul cablu.
158
IEEE 1284
n 1994, mai vechile interfe ele Bitronics i Centronics au dat na tere
standardului IEEE 1284. Interfa a paralel nu a fost folosit doar pentru
imprimante, ci i pentru alte dispozitive (chei dongle pentru protec ia la copiere,
unit i ZIP, scanere, modemuri externe, pl ci de sunet i camere web externe,
gamepad-uri, joystick-uri, hard disk-uri i CD-ROM-uri externe, programatoare
EPROM sau controlere hardware etc.). Azi, interfa a paralel a fost nlocuit de
interfa a USB i chiar de cea Ethernet, n unele cazuri (vezi figura 3.77).
Mul i produc tori de calculatoare personale i laptopuri nici nu mai includ un
port paralel, considerndu-l nvechit, dar i pentru c exist convertoare USBparalel, care pot fi folosite n cazul imprimantelor care au numai port paralel.
Standardul IEEE 1284 define te o comunica ie paralel bidirec ional ntre
calculatoare sau alte dispozitive, oferind o band maxim teoretic de 4 Mb/s, i
poate func iona n cinci moduri:
Compatibility Mode (Centronics) foarte asem tor modului
unidirec ional original Centronics;
Nibble Mode folose te liniile de stare pentru a recep iona date de la
imprimant (pentru transferul extins de stare al imprimantei);
Byte Mode se transmit 8 bi i concomitent, folosind liniile de date;
Enhanced Parallel Port (EPP) este o arhitectur semiduplex
bidirec ional , care permite dispozitivelor s transmit cantit i mari de
date (pentru scanere sau dispozitive de stocare);
Extended Capability Port (ECP) similar EPP-ului, poate oferi o band
de pn la 2,5 Mb/s (pentru a m ri viteza, folose te RLE Run Length
Encoding , o compresie simpl a secven elor lungi care con in acela i
caracter repetitiv, folosind un cod de doar doi octe i).
Calculatoarele recente cu port paralel l pot folosi n modurile EPP, ECP sau
n mod mixt.
PIA
Cel mai uzual model de interfa utilizat este PIA (Peripheral Interface
Adapter). Cipul standard folosit este 6821 PIA cu 40 de pini. Interfa a folose te
dou registre, unul pentru datele transmise de la periferic la microprocesor i
cel lalt pentru sensul opus. Cnd perifericul transmite un octet de date de-a lungul
celor opt linii c tre sistem, datele sunt depuse ntr-un registru PIA unde vor a tepta
pn cnd microprocesorul este preg tit pentru preluarea lor. Dup efectuarea citirii
acestui octet stocat, procesul se repet pentru urm torul octet.
Pentru transmisii n sens invers, procesorul va transmite un octet de-a lungul
magistralei de date c tre cipul I/O, care le va depozita ntr-unul din aceste registre.
Cnd perifericul este n stare ready, va transmite un semnal c tre PIA, care i va
pune la dispozi ie datele, apoi procesul se reia.
n plus fa de aceste registre, este disponibil un registru de stare ai c rui bi i,
folosi i ca fanioane, indic microprocesorului care coordoneaz activit ile I/O
starea registrelor amintite, validitatea octetului de date transferat sau, n general,
159
starea interfe ei paralele PIA. Toate aceste registre programabile sunt cuplate la
magistrala de date a sistemului, prin aceasta fiind adresate direct de c tre procesor.
Faptul c , prin intermediul registrelor interne, aceste cipuri-interfe e sunt
programabile le face deosebit de practice, deoarece fiecare port al unei linii de
transmisie (din cele opt existente) poate fi programat i controlat individual n
privin a direc iei de transfer a datelor. Astfel, anumite linii pot fi programate pentru
transmisie ntr-un sens, n timp ce celelalte ac ioneaz n sens opus. Un exemplu
clasic de folosire a comunica iilor paralele este imprimanta.
n figura 3.78 este reprezentat o implementare fizic a interfe ei PIA, prin
cipul W65C21S, compatibil cu microprocesoarele din familia Motorola 68.
Interfa a prezint dou porturi I/O bidirec ionale (A i B) pe cte 8 bi i, cu comand
individual a sensului datelor. Transferul datelor se face folosind un protocol
automat de tip handshake. Interfa a este prev zut cu dou ie iri de ntrerupere
comandate software. Portul A, prin ie irea CA2, asigur transferuri de mare vitez ,
pentru opera ii statice sau cu o frecven de pn la 14 MHz.
Fig. 3.78. Conexiunile interfe ei PIA pentru microprocesoarele din familia Motorola 68.
160
Raza aproximativ
(m)
Clasa 1
100
20
~ 100
Clasa 2
2,5
~ 10
Clasa 3
~1
161
162
163
164
Dar dac procesorul nu mai este interogat asupra acelor activit i, atunci de
controlul i securitatea lor se ocup un dispozitiv numit controler DMA (n general
de tipul i8237), care suport , n cazul PC-XT, patru canale (DMA0DMA3), putnd
gestiona pn la patru procese simultane de transfer de date. Calculatoarele dotate cu
procesoare de la 80386 n sus dispun de nc patru canale DMA pe 16 bi i (numite
HDMA), gestionate de un al doilea controler de tipul i8237A-5 (vezi figura 3.81).
165
166
Tabelul 3.9
Utiliz rile tipice ale canalelor DMA
DMA
magistral
utilizare tipic
RAM refresh
8/16 bi i
Plac de sunet
(low DMA)
8/16 bi i
Controler
floppy disk
8/16 bi i
Liber
Redirectat pentru
nivelele DMA 03
16 bi i
Plac de sunet
(high DMA)
Adaptoare SCSI, pl ci de re ea
16 bi i
Liber
16 bi i
Liber
167
Tabelul 3.10
Nivelurile IRQ i asignarea corespunz toare fiec rui dispozitiv
nivel ntrerupere
utilizare
IRQ0
IRQ1
Tastatur
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
IRQ8
IRQ9
IRQ10
Liber (dac placa de sunet folose te IRQ5, atunci IRQ10 poate fi folosit
pentru placa de re ea)
IRQ11
IRQ12
IRQ13
IRQ14
IRQ15
Controlerul IDE2
168
169
intrare-ie ire. Orice port este definit de o asemenea adres , care va accesa o zon de
memorie din partea inferioar a memoriei de lucru.
Referitor la dificult ile generate de setarea acestor parametri, se
men ioneaz ca solu ie deosebit de avantajoas i rapid folosirea arhitecturii PCI,
care, prin intermediul setului de cipuri inteligente, permite sistemului s se
autoconfigureze, instalarea noii pl ci decurgnd f probleme (plug'n'play).
Practic, dup cuplarea fizic , n slotul PCI liber urmeaz instalarea driver-ului
pl cii respective (o ac iune software), cu aceasta ncheindu-se dotarea sistemului.
Sistemul va recunoa te automat la pornire placa nou instalat , configurnd totodat
i canalele DMA, IRQ i adresele I/O necesare.
170
4. NIVELUL FIZIC
172
4.1. Microprocesorul
Microprocesorul reprezint inima unui sistem de calcul. Privit din punct de
vedere fizic, el este un circuit care prezint cteva zeci sau chiar sute de terminale.
Semnalele de comunica ie asociate acestora i permit microprocesorului s fac
schimb de informa ii cu mediul extern, n principal cu circuite de memorie sau cu
circuite de intrare-ie ire. O analiz detaliat a acestor semnale determin diversele
moduri de func ionare logic i electric a procesorului i posibilit ile sale de
interfa . Exist trei categorii de semnalele electrice externe ale microprocesorului:
de adres ;
de date;
de comand .
Fiec rui tip de semnal i sunt asociate linii de comunicare care formeaz o
magistral . De cele mai multe ori, n limbajul de specialitate se vor ntlni cteva
no iuni specifice precum: magistrala de adrese, care reprezint totalitatea liniilor pe
care circul adresele, magistrala de date, corespunz toare liniilor de date i
magistrala de comenzi, specific liniilor de comenzi.
173
174
4.2. ntreruperile
ntreruperile sunt schimburi n fluxul de control, care nu sunt cauzate de
programul care se execut , ci de alte cauze, aflate de obicei n leg tur cu opera iile I/O.
Exemplu. Un program poate comanda discului s porneasc transferul
informa iei i i cere acestuia s furnizeze o ntrerupere imediat ce transferul s-a
terminat. Microprocesorul ntrerupe programul ce se execut i transfer controlul
unei proceduri de tratare a ntreruperii, care execut cteva ac iuni corespunz toare.
Cnd se termin , rutina de tratare a ntreruperilor ntoarce controlul c tre
programul ntrerupt. Microprocesorul trebuie s reporneasc procesul ntrerupt
exact din aceea i stare n care era cnd a ap rut ntreruperea, ceea ce nseamn
refacerea tuturor registrelor interne n starea de dinainte de ntrerupere.
Un concept cheie al ntreruperilor este transparen a. Cnd apare o
ntrerupere, se execut cteva ac iuni i un fragment de cod anumit, dar cnd
servirea ntreruperii s-a terminat, calculatorul trebuie s se ntoarc n aceea i stare
pe care a avut-o nainte de ntrerupere. O procedur de tratare a ntreruperii cu
aceast proprietate se spune c este transparent .
Dac un calculator are mai multe dispozitive de I/O care pot lucra n paralel,
exist o probabilitate diferit de zero s apar simultan dou cereri de ntrerupere
sau s apar o astfel de cerere atunci cnd se execut deja una. Pentru a se putea
face o departajare ntre toate aceste ntreruperi, acestea vor avea ata at cte un nivel
de prioritate. Cnd un dispozitiv cu prioritatea n genereaz o ntrerupere, rutina de
tratare a ntreruperii trebuie, de asemenea, s fie executat cu prioritatea n.
n timp ce se execut o procedur de tratare a ntreruperii cu prioritatea n,
orice ncercare de a cauza o ntrerupere de c tre un dispozitiv cu o prioritate mai
mic este ignorat pn cnd rutina ntreruperii se termin i UCP se ntoarce la
programul utilizatorului. Pe de alt parte, tratarea ntreruperilor de la un dispozitiv
cu o prioritate mai mare trebuie validat f nici o ntrziere.
175
UC
INT
INTA
RD
WR
A0
CS
D0-D7
8259A
controler
de
ntreruperi
IR 0
IR 1
IR 2
IR 3
IR 4
IR 5
IR 6
IR 7
Ceas de sistem
Tastatur
Controler IRQ2
COM2/COM4
Mouse serial
Placa de sunet
Floppy disc
Imprimant
4.3. Magistrala
4.3.1. Conceptul de magistral
n modelul ma inii von Neumann, comunica ia dintre componentele
sistemului se realizeaz prin leg turi dedicate ntre perechi de componente. Aceast
176
177
178
179
180
Caracteristicile constructive ale unei magistrale sunt influen ate de cerin ele i
particularit ile func ionale ale procesorului pentru care a fost conceput . Acest fapt
vine n contradic ie cu ideea de sistem deschis, conform c reia mediul de
comunica ie ntre componentele unui sistem trebuie s fie independent de produc tor.
Firmele dominante n domeniul construc iei de calculatoare i-au dezvoltat propriile
standarde de magistral adaptate familiilor de procesoare pe care le produc.
Exemple. DEC UniBus, Intel MultiBus, IBM PC Bus HP GPIB etc.
Unele din aceste magistrale sunt deschise, n sensul c standardul este
accesibil i utilizabil liber de orice produc tor; altele au fost patentate i au
restric ii de utilizare, de exemplu magistrala MicroChannel (MCA) a firmei IBM,
folosit n construc ia calculatoarelor PS/2. Exist i standarde dezvoltate de
grupuri de produc tori cu interese apropiate. Astfel au ap rut standardele Camac,
FastBus, FutureBus, NuBus, Can etc.
n cazul acestor magistrale se pune problema asigur rii interoperabilit ii i
compatibilit ii ntre module realizate de diver i produc tori. Metoda de eliminare
a unor astfel de probleme este supunerea componentelor la teste de conforman .
Cele mai cunoscute foruri interna ionale de standardizare care au activitate n
domeniul magistralelor sunt IEEE, ANSI i IEC.
Cteva din cele mai cunoscute tipuri de magistrale sunt prezentate n tabelul 4.1.
181
Tabelul 4.1
Tipuri de magistrale
Standard
IEEE
Nume
uzual
Domenii
de utilizare
488
GPIB
Instrumente de laborator
Camac
696
S 100
796, P1296
MultiBus I, II
P896
FutureBus
Sisteme multiprocesor
P996
PC Bus
Calculatoare personale
P1014
VME Bus
P1196
NuBus
Sisteme multiprocesor
UniBus
Minicalculatoare PDP 11
QBus
Minicalculatoare VAX
SCSI
n cadrul unui sistem de calcul pot s coexiste mai multe tipuri de standarde,
specializate pe transferul de date ntre anumite tipuri de componente de sistem.
Astfel, se poate utiliza o magistral de mare vitez pentru transferul ntre procesor
i memorie, o magistral cu acces multiplu (multimaster) pentru unele periferice de
mare vitez (disc, interfa video) i o magistral de mic vitez pentru perifericele
lente. n aplica iile de control se mai poate ad uga i o magistral de
instrumenta ie, adaptat pentru culegerea datelor de proces.
Pentru a satisface o gam larg de cerin e, s-au dezvoltat familii de
magistrale care cuprind mai multe variante ale unei magistrale de baz i sunt
compatibile ntre ele ntr-o oarecare m sur (interfe ele dezvoltate pentru aceste
variante necesit modific ri minore pentru compatibilizare).
n prezent exist mai multe astfel de familii de magistrale:
magistrale dezvoltate pentru calculatoare DEC UniBus, QBus i VAXBI;
magistrale dezvoltate pentru procesoarele Intel MultiBus I, MultiBus II
i extensii ale acestora;
magistrale inspirate de structura seriei de procesoare Motorola
magistralele VME;
magistrale de instrumenta ie familia GPIB (dezvoltat de Hewlett
Packard), IEEE488 i Camac.
182
183
184
T1
185
T2
T3
ADDR
ADRES CUVNT
DATE
DATE
TM
MREQ
TDS
TML
TMH
RD
TRL
TRH
TDH
186
ADDR
ADRES CUVNT
MREQ
RD
MSYN
DATE
DATE
SSYN
Fig. 4.5. Schema accesului la magistrala asincron .
187
188
a cum se arat n figura 4.6, specifica iile PLB accept implement rile n
care aceste trei faze pot solicita numai un singur ciclu de ceas PLB. Acest lucru se
ntmpl atunci cnd masterului solicitant i este acordat imediat accesul la
magistrala slave i unitatea slave confirm adresa de-a lungul aceluia i ciclu. Dac
un master trimite o cerere care nu poate fi imediat trimis la magistrala slave, faza
de cerere poate dura unul sau mai multe cicluri.
Procesorul de magistral local de 128 de bi i a ap rut n mai 2007.
PLB ofer o interfa standard ntre nucleele procesorului i controlerele
integrate ale magistralei. Cu PLB, poate fi dezvoltat o bibliotec a nucleelor
procesorului i controlerelor magistralei pentru utilizare i aplicare n nucleu, sub
form de circuite integrate specifice (numite Core + ASIC) i modele system-on-achip (SOC).
n plus, PLB este o magistral de mare performan on-chip care este folosit
n sistemele integrate Core + ASIC. PLB sprijin citirea i scrierea, transferuri de
date ntre dispozitivele master i slave care sunt dotate cu o interfa de magistral
PLB i sunt conectate prin semnale ale PLB.
Fiecare master PLB este anexat prin magistrale de adresare diferite,
magistrale de citire de date, magistrale de scriere de date i semnale de transfer.
Slave-urile PLB sunt ata ate la PLB prin magistrale de adrese puse n comun, dar
decuplate, magistrale de citire, magistrale de scriere, control al transferului i starea
semnalelor pentru fiecare magistral de date.
PLB este o magistral complet sincron . O singur surs de ceas prevede
timing-ul pentru toate semnalele de PLB. Toate unit ile master i slave care sunt
anexa i la PLB folosesc acest ceas ca surs .
PLB se diferen iaz prin urm toarele caracteristici de performan :
189
BUS GRANT
Dispozitive I/O
190
arbitru
BUS GRANT 1
BUS GRANT 2
Fig. 4.8. Repartizarea dispozitivelor I/O pe nivele de prioritate.
191
BG 1
BR 1
BG 2
arbitru
BR 2
BG m
BR m
ACK
BUS
192
m
log2m linii
de interogare
confirmare
ACK
arbitru
BUS REQUEST
BUS
Fig. 4.10. Algoritmul cu interogare ciclic (polling).
193
BUS REQUEST
BUS BUSY
ARBITRATION LINE
+ 5V
1
194
BUS
GRANT
ACK
BUS
REQUEST
BUS
Fig. 4.12. Algoritmul cu priorit i dinamice (rotating daisy chain).
195
I/O
Magistral VME
Fig. 4.13. Exemplu simplu de magistral VME.
ML
ML
VSB BUS
UC
UC
UC
MP
VME BUS
VMS BUS
ML = memorie local
MP = memorie partajat
196
197
Cache extern
Magistrala procesorului
Cipurile
controlerului
de memorie
Magistrala principal a
sistemului
Magistrala principal a
sistemului
Magistrala memoriei
RAM
198
199
200
Parallel ATA sunt transferurile de date mai rapide, abilitatea de a deconecta sau
instala echipamente n timp ce calculatorul este func ional (hot swapping), cabluri
mai sub iri care permit sistemului de r cire cu aer s func ioneze mai eficient i
opera ii mai sigure cu verific ri de integritate ale datelor mai riguroase.
Interfa a standard pentru controlerele SATA este AHCI (Advanced Host
Controller Interface), care permite s fie folosite specifica iile avansate ale SATA
cum ar fi hot plug sau NCQ (Native Command Queuing). Dac interfa a AHCI nu
este implementat pe placa de baz , controlerele SATA ruleaz ntr-un mod care
emuleaz interfa a IDE, dar n acest mod nu se pot beneficia de nici una din
caracteristicile SATA enumerate mai sus. Driver-ele native din sistemul de operare
Windows XP nu suport interfa a AHCI, n timp ce sistemul de operare Windows
Vista i versiunile curente din Mac OS ofer acest suport.
Valorile ratei de transfer a genera iilor interfe ei SATA sunt de 1,5 Gb/s i
3,0 Gb/s. Exist planuri de viitor pentru un standard de 6 Gb/s, care ar fi n
momentul de fa folositor n tandem cu multiplicatori de porturi, pentru a permite
mai multor discuri s fie conectate la un singur port SATA, mp ind l rgimea de
band a portului ntre respectivele discuri.
SATA este o arhitectur de tip punct-la-punct (point-to-point), iar
conexiunea ntre controler (H host) i echipamentele de stocare (D device,
maximum 8 porturi) este una direct (vezi figura 4.18).
n PC-urile actuale, controlerul SATA este de cele mai multe ori plasat pe
placa de baz sau instalat pe un slot PCI. Unele controlere SATA au mai multe
porturi SATA i pot fi astfel conectate la mai multe echipamente, acestea avnd un
identificator unic pe 64 de bi i. Exist , de asemenea, i porturi de expansiune (M)
care permit conectarea prin cabluri (C, lungime 2 m) a mai multor echipamente
(maximum 16) la un singur controler de port SATA.
Protocoalele de transmisie de mare vitez folosesc o codare de tip 8b/10b, iar
semnalul este trimis folosind algoritmul NRZ (Non Return to Zero), cu semnale de
voltaj mic, diferen iale (LVDS). n codarea de tip 8b/10b, semnalul de sincronizare
este inclus n secven a de date. Aceast tehnic este numit clock data recovery
(recuperarea ceasului cu ajutorul datelor), deoarece nu folose te un semnal de
sincronizare separat. n schimb, are nevoie de o tranzi ie de la 0 la 1 n irul de date
serial pentru a face sincronizarea.
Varianta extern la magistralei SATA se nume te eSATA (introdus n 2004).
201
202
203
204
205
206
207
208
209
Fluxul de date de baz i rela iile dintre modulele USB sunt prezentate n
figura 4.25, iar comunica ia ntre calculator (host) i aparate (hub) se face pe baza
unui protocol descris n figura 4.26.
Cmp de
sincronizare
(8 bi i)
Identificator al
pachetului
(8 bi i)
Date
(0 1032 octe i)
Control
erori CRC
(16 bi i)
Controlul erorilor este realizat cu ajutorul unui cod redundant ciclic, CRC
(Cyclic Redundancy Code), care asigur transmisia corect a informa iei.
Mecanismul CRC asigur o rat de eroare a transmisiei de un bit eronat la 10
miliarde. Dup terminarea transferului de date, are loc confirmarea transmisiei
datelor i verificarea corectitudinii transmisiei lor (handshake).
Datorit modulelor soft plugnplay, la conectarea fizic a unui periferic la
computer, acesta este autodetectat, iar datorit unor registre interne ale perifericului
(care furnizeaz sistemului de operare informa ia necesar ) sunt nc rcate exact
driver-ele necesare func ion rii acestuia, care poate fi i dezinstalat cnd se
hot
te ndep rtarea perifericului respectiv din configura ie.
Dup instalarea driver-ului aferent, acesta face o cerere de alocare de band .
Banda se aloc n mod dinamic, n func ie de necesit ile fiec rui periferic.
Informa iile se transfer sincron sau asincron pe magistral , n format de pachete.
210
211
212
213
214
215
216
217
Fig. 4.34. Topologia de magistral partajat la PCI i topologia punct la punct la PCI Express.
Observa ie. n cazul PCI Express, fiecare dispozitiv are o cale direct i
exclusiv c tre switch. Switch-ul analizeaz datele n func ie de prioritatea aplica iilor.
rgimea mare de band reprezint o alt noutate adus de PCI Express. O
singur cale este capabil s transmit 250 MB/s n fiecare direc ie simultan (500
MB/s pentru ambele direc ii). PCI Express este alc tuit din dou c i, a adar, poate
transmite 500 Mb/s pentru o singura direc ie i 1000 MB/s pentru ambele direc ii.
PCI Express n variantele 4, 8, 16 nu se fabric pentru calculatoarele desktop,
ci pentru servere, iar PCI Express 16 este creat pentru a nlocui slotul VGA 8x.
218
Din punct de vedere al compatibilit ii, produc torii au gndit PCI Express
pentru a r mne compatibil din punct de vedere software cu toate sistemele de
operare i programele actuale. Cu alte cuvinte, nu este nevoie de un update
software pentru a putea beneficia de avantajele aduse de PCI Express. Un alt lucru
important este c PCI Express r mne compatibil cu pl cile PCI actuale nu ofer
suport simultan pentru AGP i PCI Express, din cauza constrngerilor. Deci,
adoptnd o platform cu PCI Express, trebuie nlocuit vechea plac video.
n plus, PCI Express diminueaz consumul de energie cnd slotul nu este activ,
ofer suport pentru traficul n timp real, ncorporeaz func iile hot plug i hot swap,
furnizeaz performan e scalabile i caracteristici avansate, QoS (Quality of Service).
Comparativ cu PCI, PCI Express are semnale de leg tur minime, iar ceasul
i adresarea informa iei sunt incluse n date. Figura 4.35 compar l rgimea de
band per pin la PCI, PCI-X, AGP8 i PCI Express.
219
220
221
Tabelul 4.2
Nume
rgime
de band
efectiv
(Mb/s)
Vitez
de
transfer
(MB/s)
Lungime
maxim
de cablu
(m)
Putere/
tensiune
necesare
(W/V)
Num r
de echipamente
per canal
SAS
3.000
375
eSATA
3.000
300
SATA 300
3.000
300
SATA 150
1.500
150
PATA 133
1.064
133
0,46
FireWire
3200
3.144
393
100
15/1225
63 (cu hub)
FireWire 800
786
98,25
100
15/1225
63 (cu hub)
FireWire 400
393
49,13
4,5
15/1225
63 (cu hub)
USB 2.0
480
60
2,5/5
UltraSCSI 320
2.560
320
12
16
Fiber Channel
cablu cupru
4.000
400
12
Fiber Channel
fibr optic
10.520
2.000
250.000
Infiniband
12 Quad-rate
120.000
12.000
1 (punct-la-punct)
5. NIVELUL MICROPROGRAMAT
223
Practic s-a constatat c pentru execu ia oric rei instruc iuni din setul
microprocesorului se execut o succesiune bine definit de pa i.
Microprogramarea este un concept care formeaz de fapt interfa a ntre
limbajul de asamblare i structurile fizice ale procesorului. Microinstruc iunile
sunt practic semnalele de comand adresate de unitatea de control c tre unitatea
de execu ie a procesorului. Apari ia nivelului microprogramat presupune
asocierea fiec rei instruc iuni cu o succesiune de microinstruc iuni.
224
225
226
DEPL
RDA
RAD
RD
WR
VALC
8
ADDR*
ALU
AMUX
COND*
Fig. 5.3. Structura unei microinstruc iuni (cmpuri i num r de bi i alocat); * neprezentat.
227
228
Secven iator de
microprogram
Memorie de
microprogram
Control
Calea de date
229
Fig. 5.6. Schema bloc a unei microma ini (schema modificat pentru mA).
230
i vertical
231
232
Tabelul 5.1
Codul opera iei pentru microinstruc iunile n format vertical
Binar
Simbol
Descriere
Opera ie
0000
ADD
adunare
R1 = R1 + R2
0001
AND
I logic
R1 = R1 R2
0010
MOVE
deplasare
R1 = R2
0011
COMPL
complement
R1 = inv(R2)
0100
SHIFTL
deplasare stnga
R1 = shiftleft(R2)
0101
SHIFTR
deplasare dreapta
R1 = shiftright(R2)
0110
GETRDA
nc rcare R1 cu RDA
R1 = RDA
0111
TEST
test registru
1000
BEGRD
nceput RD
RAD = R1; RD
1001
BEGWR
nceput WR
1010
CONRD
continuare RD
RD
1011
CONWR
continuare WR
WR
1100
LIBER
1101
NJUMP
salt dac N = 1
if N then go to R
1110
ZJUMP
salt dac Z = 1
if Z then go to R
1111
UJUMP
go to R
233
234
AMUX = ABCD
I = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD +
+ ABCD = AB + AC + AD
RAD = ABCD + ABCD = ABC
RDA = ABCD
RD = ABCD + ABCD = ABD
WR = ABCD + ABCD = ABD
MSA = ABCD + ABCD = ABC
MSB = ABCD + ABCD = ABD
Tabelul 5.2
MOVE
COMPL
SHIFTL
SHIFTR
GETRDA
TEST
BEGRD
BEGWR
10
CONRD
11
CONWR
12
LIBER
13
NJUMP
14
ZJUMP
15
UJUMP
MSB
MSA
AND
WR
RD
ADD
RDA
RAD
AMUX
NZ
SHIFTB
SHIFTA
ALUB
ALUA
instruciuni
comenzi
+
+
+
+
+
235
236
237
5.4. Nanoprogramarea
Pn acum, discutnd despre microprograme, s-a presupus existen a
unei memorii principale (care con ine instruc iunile nivelului 2) i a unei
memorii de comand (care con ine microprogramul).
O a treia memorie, denumit nanomemoria, permite n unele cazuri
o asociere optim ntre microprogramul orizontal i cel vertical Astfel,
nanoprogramarea corespunde unei optimiz ri statistice a microprogramului,
n cazul n care un set de instruc iuni este mai des solicitat. n figura 5.8 este
reprezentat (prin compara ie cu microprogramarea) conceptul de
nanoprogramare.
n cazul a), microprogramul con ine n microinstruc iuni a cte w bi i,
rezultnd capacitatea unei memorii de comand de nw bi i. Se presupune c
o analiz detaliat a microprogramului arat c dintre cele 2w posibilit i de
reprezentare sunt utilizate doar m << n instruc iuni.
n cazul b) s-a construit o nanomemorie de m cuvinte a cte w bi i
care con ine cele m microinstruc iuni mai des utilizate. Atunci fiecare
microinstruc iune a microprogramului original poate fi nlocuit n memoria
de comand prin adresa cuvntului din nanomemorie care con ine
nanoinstruc iunea corespunz toare, rezultnd l imea cuvntului n memoria
de comand de log2m bi i.
w
n
microprogram
log2m
microprogram
nanoprogram
a)
b)
238
239
Mnemonica
AQ
AB
ZQ
ZB
ZA
DA
DQ
DZ
Microcod
I2 I1 I0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Codul
octal
0
1
2
3
4
5
6
7
Sursa
R S
A Q
A B
0 Q
0 B
0 A
D A
D Q
D Z
240
I8:6
Destinatie UAL
8
7
6
I5:3
Functie UAL
5
4
3
I2:0
Sursa UAL
2
1
0
241
22 21 20
I8 I7 I6
Selectie
destinatie
19
M
U
X
2
18 17 16
I2 I1 I0
Selectie
sursa
15
Cn
14 13 12
I5 I4 I3
11 10 9 8
A3A2A1A0
7654
B3B2B1B0
3210
C3C2C1C0
Operatie
UAL
Adresa
A
Adresa
B
Adresa
C
242
243
Acest nivel are un caracter hibrid, cea mai mare parte a instruc iunilor care
definesc limbajul fiind de tip ma in . Exist i instruc iuni specifice, care necesit
interpretare pentru a fi trecute pe nivelul 2.
Nivelul sistemului de exploatare are sarcini particulare n ceea ce prive te
gestionarea memoriei (lucrul cu memoria virtual prin conceptele de paginare i
segmentare) i organizarea execu iei n paralel a mai multor programe. Att nivelul
microprogramat ct i nivelul sistemului de operare (exploatare) sunt necesare
pentru interpretarea nivelurilor inferioare. Acestea sunt scrise de speciali ti i sunt
orientate c tre numeric. ncepnd cu nivelul imediat superior (limbajul de
asamblare) apare orientarea c tre simboluri, cuvinte, toate acestea avnd o anumit
sintax .
245
Cnd programul trebuie s execute o instruc iune din pagina urm toare,
sistemul de gestiune al memoriei virtuale (care face parte din sistemul de operare)
execut urm toarele opera ii:
1.
2.
3.
4.
5.
o pagin de 4 KB
0
spa iul fizic
4096
8192
12287
4095
65536
15
246
Tabelul 6.1
Compara ie ntre capacit ile de adresare a memoriei fizice i a memoriei virtuale
Procesor
8086
1 MB (20 linii)
80286
16 MB (24 linii)
1 GB
80386
4 GB (32 linii)
64 TB
80486
4 GB (32 linii)
64 TB
Pentium
4 GB (32 linii)
64 TB
Memoria
virtual
Program care
utilizeaz
memoria
virtual
Disc care
stocheaz
i din memoria
virtual
i memoria virtual .
247
memoria fizic
adresabil
64 KB (16 linii)
memoria fizic
instalat
32 KB
pagina 0
pagina 1
4096
8192
pagina 0
pagina 1
4096
4 KB
8192
4 KB
pagina 5
pagina 7
28672
32678
61440
pagina 15
65536
deplasament
0011
0000
0001
0110
12
0
1
2
3
110
15
Fig. 6.4. Gestiunea memoriei fizice folosind tabelul de pagini.
248
249
250
5. dac pagina a fost modificat , aceast pagin este nti scris pe disc;
6. pagina necesar este citit de pe disc;
7. pagina este mapat spa iului de adrese al aplica iei;
8. este reluat execu ia aplica iei.
Algoritmii de nlocuire pot fi locali sau globali. Cnd apare semnalul de
page fault, algoritmii de nlocuire locali selecteaz pagini care apar in aceluia i
proces, n timp ce algoritmii globali pot selecta orice pagin din memorie.
Algoritmul optim de nlocuire (Belady)
Algoritmul optim de nlocuire, cunoscut i sub numele de algoritmul lui
Belady, este un algoritm de nlocuire ce func ioneaz dup urm torul principiul:
cnd o pagin trebuie copiat de pe disc n memorie, sistemul de operare mut
con inutul paginii care va fi folosit n proces cel mai trziu, din memorie pe disc,
cndu-i loc noii pagini. De exemplu, o pagin care nu va fi folosit n
urm toarele 10 secunde va fi mutat din memorie pe disc naintea unei pagini care
va fi folosit n urm toarele 2 secunde.
Acest algoritm este unul teoretic, el neputnd fi implementat pe sistemele
de operare deoarece nu se poate ti exact ct va dur pn cnd o pagin din
memorie va fi folosit .
Not Recently Used (NRU)
Algoritmul NRU (nefolosit recent) este un procedeu de nlocuire a
paginilor care au fost folosite recent. Acest algoritm func ioneaz pe urm torul
principiu: cnd o pagin este referit , un bit de referin este setat la valoarea 1
pentru acea pagin , aceasta este acum marcat ca fiind referit . Cnd o pagin este
scris , un alt bit, de scriere a paginii, este setat la valoarea 1. La un anumit interval
de timp se reseteaz bi ii de referin a paginilor folosite recent.
Sistemul de operare distinge 4 clase de pagini:
clasa 0: nereferite, nemodificate;
clasa 1: nereferite, modificate;
clasa 2: referite, nemodificate;
clasa 3: referite, modificate.
First-In First-Out (FIFO)
Algoritmul de nlocuire FIFO (primul intrat, primul ie it) elimin pagina
care a fost nc rcat prima, indiferent de momentul n care aceast pagin a fost
referit ultima dat . Fiecare pagin are un contor care este ini ial egal cu 0 pentru
fiecare cadru de pagin . Pagina care tocmai a fost adus n memorie va avea
valoarea contorului egal mereu cu 0, urm toarea va avea valoarea 1 (nainte ca
pagina cu indexul 0 s fie adus n memorie pagina aceasta avea contorul egal cu
zero, dar a fost incrementat cu 1) .a.m.d. Practic, se creeaz un fenomen de
mb trnire a paginilor, cea mai tn pagin avnd contorul cu valoarea 0.
Cnd o pagin trebuie eliminat , se va alege mereu cea cu contorul cel mai mare.
251
252
253
prioritate mai mare dect paginile care au fost apelate mai mult, dar n trecut. n
acest fel, cnd o pagin trebuie s fie nlocuit , vor fi alese paginile cu contorul cel
mai sc zut.
Observa ie. Algoritmul Aging difer de algoritmul LRU, n sensul n care
poate ine eviden a apelurilor n ultimele 16/32/64 intervale de timp (depinznd de
num rul de bi i pe care poate lucra procesorul). n consecin , se poate spune c
modul n care au decurs apelurile n memorie n ultimele 16 intervale de ceas este
suficient pentru a lua o decizie corect asupra c rei pagini trebuie nlocuite.
adar, algoritmul Aging poate oferi performan e foarte apropiate de cele ale
algoritmului optim (Belady), la un pre moderat.
Algoritmul Working Set
Fig. 6.5. Dimensiunea setului de pagini utilizate de ultimele k apeluri de memorie n func ie
de timp (t).
254
255
13
index
0/1
GDT
sau
LDT
0 3 nivelul de
protec ie al
segmentului
respectiv
m rimea segmentului 0 15
m rime
G D 0 X segment 16 19
Pr
32 bi i
Fig. 6.8. Structura descriptorului.
Tip
adresa de
baz 16 23
256
Adresa de baz
rimea
LDT
(GDT)
Alte
cmpuri
MSB
LSB
adresa liniar 32 bi i
Fig. 6.9. Utilizarea tabelului de descriptori n ob inerea adresei fizice.
257
10
10
Dir
12
Page
Deplasament
1024
linii
1024
linii
Adresa de
intrare n
tabelul
Page
0/1
MSB Deplasament
0/1
Fig. 6.10. Separarea nivelurilor de tabele.
258
259
260
Segment 4
(7k)
Segment 3
(8 k)
Segment 2
(5 k)
Segment 1
(8 k)
Segment 0
(4 k)
Segm. 1
Segm. 7
(a)
Segm. 3
Segm. 6
Gaur
(3 k)
Segment 5
(4 k)
Gaur
(4 k)
Segment 6
(4 k)
Segment 2
(5 k)
Gaur
(4 k)
Segment 7
(5 k)
Segment 0
(4 k)
(d)
Segment 4
(7k)
Segment 3
(8 k)
Segment 2
(5 k)
Gaur
(3 k)
Segment 7
(5 k)
Segment 0
(4 k)
(b)
Compactare
Segm. 4
Segm. 5
(c)
Gaur
(3 k)
Segment 5
(4 k)
Segment 3
(8 k)
Segment 2
(5 k)
Gaur
(3 k)
Segment 7
(5 k)
Segment 0
(4 k)
Gaur unic
(10 k)
Segment 5
(4 k)
Segment 6
(4 k)
Segment 2
(5 k)
Segment 7
(5 k)
Segment 0
(4 k)
(e)
Procednd astfel, este evident c timpul de c utare necesar este mai mic
dect n cazul c ut rii n ntreaga list a celei mai bune potriviri, ceea ce reprezint
un avantaj al acestui algoritm. Ace ti ultimi doi algoritmi au tendin a de a reduce
dimensiunea medie a g urilor. Ori de cte ori un segment este plasat ntr-o gaur mai
mare dect dimensiunea sa, ceea ce se ntmpl aproape ntotdeauna (potrivirile exacte
fiind rare), gaura este divizat n dou p i. O parte este ocupat de segment, cealalt
devine noua gaur , care binen eles este mai mic dect gaura ini ial .
Dac nu exist un proces de compensare care s creeze g uri mai mari prin
unificarea celor mici, ace ti ultimi doi algoritmi vor duce n cele din urm , la
umplerea memoriei cu g uri mici, nefolositoare. n concluzie, ace ti algoritmi
trebuie utiliza i n conjunc ie cu compactarea, aplicat rar.
261
Paginare
Segmentare
Nu
Da
Mai multe
Da
Da
Nu
Da
Pentru simularea
memoriilor mari
262
263
264
265
Adresele celor 16 cele mai recent referite pagini sunt salvate n TLB.
Programele ale c ror seturi de lucru sunt mai mici dect dimensiunea tabelei TLB
vor ajunge la echilibru cu adresele ntregului set de lucru din TLB i prin urmare
vor rula eficient. Dac pagina nu este n TLB, descriptorul i tabelele de pagini sunt
referite efectiv pentru a se g si adresa cadrului de pagin i tabela TLB este
actualizat prin includerea acestei pagini, fiind eliminat pagina utilizat cel mai
pu in recent. Cmpul de vrst ine eviden a intr rilor utilizate cel mai pu in recent.
Tabela TLB este folosit pentru a compara n paralel segmentele i numerele de
pagin ale tuturor intr rilor.
266
Unul dintre bi ii selectorului indic dac este vorba despre un segment local
sau global (adic segmentul este n LDT sau n GDT). Al i treisprezece bi i
precizeaz num rul intr rii n LDT sau GDT, astfel nct aceste tabele nu pot p stra
dect 8K descriptori de segmente. Ceilal i doi bi i se refer la protec ie i vor fi
discuta i mai trziu. Descriptorul 0 este invalid. El poate fi ns nc rcat ntr-unul
din registrele de segment, pentru a indica faptul c registrul segment nu este
momentan disponibil. Folosirea lui declan eaz o capcan .
n momentul n care un selector este nc rcat ntr-un registru de segment,
descriptorul corespunz tor este preluat din LDT sau GDT i memorat n registrele
interne ale MMU, pentru a putea fi accesat mai rapid. Un descriptor const din 8
octe i, cuprinznd pe lng alte informa ii i adresa de baz a segmentului, a a cum
se observ n figura 6.19.
267
Fig. 6.20. Conversia unui selector i a unei deplas ri ntr-o adres liniar .
268
i o adres fizic .
269
spa iu de adrese folosit, adic paginare tradi ional . De fapt, toate sistemele de
operare pentru Pentium func ioneaz n acest mod. OS/2 a fost singurul care s-a
folosit de toat puterea arhitecturii MMU de la Intel.
Proiectarea sistemului de memorie virtual la Intel Pentium, date fiind
scopurile contradictorii de implementare a pagin rii pure, a segment rii pure i a
segmentelor paginate, este un real succes. Faptul c s-a p strat compatibilitatea cu
286 i c s-au reu it toate acestea ntr-un mod att de eficient este un real succes
din punct de vedere al proiect rii.
11
ignora i
deplasament
10
B
C
16
intr ri
4 bi i
8
intr ri
MSB deplasament
270