Você está na página 1de 180

3

Arhitectura calculatoarelor

IUNI INTRODUCTIVE
1.1.

SCHEMA DE BAZ A UNUI CALCULATOR

Orice calculator are n componen patru mari uniti fundamentale:


-Unitatea central (UC).
-Unitatea de memorie (UM).
-Unitatea de Intrare/Ieire (U I/E).
-Magistrale de interconectare (BUS-uri).
Periferic 1
Periferic 2
UC

UM

U I/E

Periferic n

Magistral (BUS)

Rolurile acestor componente sunt:

Sorin Adrian Ciureanu

-Unitatea central (UC) controleaz toate componentele, executnd


instruciunile unui program; efectueaz calcule aritmetice i logice.
-Memoria (UM) pstreaz programele n curs de execuie i datele
asociate lor.
-Unitatea de Intrare/Ieire (U I/E) leag sistemul cu lumea extern
prin intermediul unitilor periferice: ecran, tastatur, discuri, benzi
magnetice, reele etc.
-Magistralele sunt de trei feluri:
magistrale de adres, care vehiculeaz adresa memorie sau a unitii
I/E generat de UC (sau, n unele cazuri de alte uniti de control);
magistrale de date, care vehiculeaz informaia (instruciuni, date)
ntre UC, memorie i unitile I/E;
magistrale de control, care vehiculeaz semnalele utilizate de UC
pentru controlul sistemului (adres, memorie valid, adres I/E
valid, citire/scriere, ateptare, ntrerupere etc.).
Principiul de funcionare a unui calculator este relativ simplu. n
UM exist programe, fiecare program avnd un numr de instruciuni.
Ciclurile de executare a unei instruciuni sunt urmtoarele:
-Ciclul extragere instruciune (instruction fetch). UC face o citire a
memoriei la adresa la care se afl instruciunea. Instruciunea are un numr
de bii, n funcie de arhitectura calculatorului, de obicei multiplu de 8.
Instruciunea citit este adus pe magistral i depus ntr-un registru al
unitii centrale.
-Ciclul de aflare a operanzilor. Oricare instruciune lucreaz cu
operanzi. ntre operanzi se petrece o operaie dat de un cmp al
instruciunii, numit codul instruciunii. n aceast faz trebuiesc depistai
operanzii, mai precis adresele unde se gsesc operanzii. Acetia se pot gsi
n dou tipuri de locaii:
-n registrele generale ale UC-ului;
-la o adres de memorie.
Exist mai multe tipuri de adresare pentru determinarea adreselor de
operanzi. La sfritul acestui ciclu, n UC trebuie s existe adresele fizice
ale operanzilor participani la instruciune.
-Ciclul de aducere a operanzilor n UC. n acest ciclu se aduc
operanzii participani la instruciune de la adresele determinate n ciclul
anterior. Ei sunt adui din registrele generale sau de la adresele de memorie
n registrele funcionale.
-Ciclul de execuie propriu zis. n acest ciclu are loc execuia
propriu zis a instruciunii, dat de codul instruciunii.

Arhitectura calculatoarelor

-Ciclul de depunere a rezultatului. Orice instruciune are ca scop


final aflarea unui rezultat care poate fi un operand n cazul instruciunilor
aritmetice(de exemplu suma pentru cod de adunare, produsul pentru cod de
nmulire) sau poziionarea unor indicatori n cazul instruciunilor logice (de
exemplu, n cazul unui cod de comparaie ntre doi operanzi, poziionarea
indicatorului z =1 pentru identitatea celor doi operanzi).
La sfritul acestui ciclu, care nseamn i sfritul executrii
instruciunii, se calculeaz adresa instruciunii urmtoare i adresa de la care
va fi adus instruciunea urmtoare.
Execuia unui program nseamn execuia succesiv a instruciunilor
din care este alctuit. Programele care compun sistemul de operare asigur
gestiunea resurselor (procesor, memorie, I/E) i fac legtura cu programele
de aplicaie.

1.2.

SCHEMA NIVELELOR CONCEPTUALE A UNUI


CALCULATOR
Un calculator virtual actual are apte nivele conceptuale.

Nivelul 7
Nivelul orientat pe aplicaie

Nivelul 6

Limbaje de nivel nalt

Nivelul 5
Limbaj de asamblare


Nivelul 4

Nivelul 3

Sistemul de operare

Interpretare
Arhitectura setului de instruciuni

Microprogram executat
direct de hard

Nivelul 2

Microarhitectur

Nivelul 1

Nivelul logic digital

Fig.1.2. Nivelurile conceptuale ale mainii virtuale corespunztoare


calculatoarelor actuale.

Sorin Adrian Ciureanu

Maina virtual este organizat pe niveluri iar ntre dou niveluri pot
exista dou operaii:
-translatarea i
-interpretarea.
Limbaj superior(Lsup)

Interpretare

Translatare
Limbaj inferior (Linf)

Utilizarea limbajului inferior este greoaie i de aceea s-a creat un


limbaj superior, mult mai aproape de gndirea uman. Se pot scrie
programe att n Lsup ct i n Linf dar calculatorul va executa totdeauna setul
de instruciuni din Linf pentru care a fost proiectat fizic.
Translatarea nseamn transformarea programului din Lsup n
ntregime ntr-un program din Linf . Programul din Lsup este abandonat iar
noul program din Linf este ncrcat n memorie i executat. Translatarea
seamn cu compilarea.
Interpretarea nseamn execuia instruciunilor din Lsup , pas cu pas,
fiecare instruciune fiind executat imediat. Este scrierea unui program n
Linf care preia programe din Lsup ca date de intrare i le execut examinnd
fiecare instruciune pe rnd i executnd secvena echivalent de instruciuni
direct n Linf , dar fr s genereze un nou program n Linf .
Diferena fundamental ntre cele dou tehnici este c n translatare
un program mai nti este transformat n totalitate n alt program i apoi
executat programul translat, n timp ce n interpretare se execut fiecare
instruciune pas cu pas.
Fa de interpretare, translatarea are avantajul unei viteze de execuie
mult mai mari.
Nivelurile au urmtoarele semnificaii:
Nivelul 1 este hard pur. Este format din circuite electrice i
electronice.
Nivelul 2 este nivelul microprogram care interpreteaz instruciunile
nivelului 3 i le execut n nivelul 1. Fiecare instruciune a nivelului 3 este
executat de un microprogram.
Nivelul 3 este nivelul setului de instruciuni al mainii, instruciuni
executate pe nivelul hard.

Arhitectura calculatoarelor

Nivelul 4 . Sistemul de operare este hibrid deoarece cuprinde att


instruciuni interpretate de nivelul patru ct i instruciuni interpretate de
nivelul trei.
Nivelele 1-4 nu sunt utilizate de programatori, ele coninnd
interpretoare i translatoare construite de ctre programatorii de sisteme.
Nivelul 5 este nivelul limbajului de asamblare, destinat
programatorilor de aplicaii. Dac primele niveluri erau interpretate, acesta
este translatat de ctre un program numit asamblor.
Nivelul 6 este nivelul de limbaj nalt. Programele scrise n acest
nivel sunt translatate ctre nivelele cinci i ase de ctre programe
specializate numite compilatoare.
Nivelul 7 conine limbaje destinate unor domenii foarte speciale cum
ar fi proiectarea asistat, administraia, grafica etc.

1.3.

SCURT ISTORIC AL DEZVOLTRII


CALCULATOARELOR

n decursul timpului, de la apariia primului calculator i pn astzi,


dezvoltarea n acest domeniu s-a datorat celor doi factori principali:
-progresul tehnologic i
-introducerea de noi concepii n arhitectura calculatoarelor.

1.3.1. Influena progresului tehnologic asupra dezvoltrii


calculatoarelor
De la apariia primului calculator, tehnologiile au fcut progrese
uriae, att n ceea ce privete componentele unui calculator ct i n
tehnologiile de stocare a informaiei. Din acest punct de vedere, se pot
distinge cinci generaii de calculatoare.
1.3.1.1.

Generaia zero ,calculatoare mecanice,(1642-1945)

Primul care a construit o main de calcul funcionabil a fost Blaise


Pascal (1623-1662) care, la numai 19 ani, a proiectat o main mecanic,
folosind roi dinate i fiind acionat de o manivel manevrat de om.
Maina putea s fac numai adunri i scderi i a fost creat de tnrul
Pascal pentru a-l ajuta pe tatl su care era colector de taxe pentru guvernul
francez.

Sorin Adrian Ciureanu

Gottfried von Leibnitz (1646-1716) a contribuit, teoretic i practic, la


naterea informaticii. El a perfecionat maina lui Pascal, noua main
reuind s execute, pe lng adunri i scderi, nmuliri i mpriri.
Cel care poate fi considerat autorul precursorului calculatorului
actual este Charles Babbage (1792-1871). Acesta a creat dou maini:
maina de calcul diferenial i maina analitic.
Maina de calcul al diferenelor (diferenial) era o main
specializat care, pe baza unui algoritm, calcula tabele de numere utile n
navigaia maritim prin metoda diferenelor finite. Cea mai interesant
caracteristic a acestei maini era nscrierea rezultatelor pe o tabl de aram
gravabil cu o tan de oel, previzionnd mediile periferice de
inscripionare de azi.
Maina analitic avea patru componente:
-magazia (memoria);
-moara (unitatea de calcul);
-seciunea de intrare (cititorul de cartele);
-seciunea de ieire (ieire perforat i imprimat).
Magazia consta din 100 de cuvinte a cte 50 cifre zecimale, fiecare
fiind folosite pentru a memora variabile i rezultate. Moara putea accepta
operanzi din magazie, pe care i putea aduna , scdea, nmuli sau mpri,
pentru ca, n final, s ntoarc rezultatul n magazie. Aceast main
analitic era programabil, ntr-un limbaj simplu de asamblare, care necesita
pe cineva care s fac programarea. Acel cineva a fost Ada de Lovelace,
fiica lordului Byron, care este cunoscut ca fiind primul programator din
istoria calculatoarelor. n cinstea ei limbajul de programare a fost denumit
ADA. Din pcate, maina nu a funcionat pentru c folosea roi dinate care,
n sec.XIX, erau realizate cu o precizie redus. Ins aceast main, care a
fost realizat practic n 1991 la Muzeul tiinei din Londra, st la baza
calculatoarelor moderne, ideile ei fiind valabile i astzi.
Urmtoarele calculatoare aparin tehnologiei electromecanice.
n 1930, un student german, Konrad Zuse, a construit o serie de
maini de calcul folosind relee electromagnetice. Din cauza rzboiului, ns,
mainile lui nu au fost cunoscute i, mai mult, au fost distruse n
bombardamentul Berlinului din 1945.
n SUA, John Atanasoff, de la Colegiul Statului Yowa, a creat,
pornind de la ideea lui Babbage, o main asemntoare din punct de vedere
logic dar utiliznd o alt tehnologie. Memoria era format din capaciti care
se rencrcau periodic, idee utilizat astzi la memoria dinamic RAM cu
refresh.

Arhitectura calculatoarelor

Ca i maina Babbage, maina lui John Atanasoff era tributar


tehnologiei i nu a funcionat. Se pare, ns, c istoria a reinut prototipul
ABC (Atanasoff-Berry-Computer), Berry fiind un student a lui Atanasoff,
realizat n 1939.
George Stibitz, de la Bell Laboratories, a creat o main mai
primitiv ca a lui Atanasoff dar care are marele merit c a funcionat,
demonstraia fcndu-se, n 1940, la Colegiul Dartmouth.
n 1944, Howard Aiken a construit o main pornind de la maina
Babbage, pe care a studiat-o ndelung, crend o nou main pe baz de
relee electromagnetice. Maina avea 72 cuvinte, fiecare de cte 23 cifre
zecimale, i un timp de instruciune de 6 secunde. Intrarea i ieirea se
fceau pe baz de hrtie perforat.
1.3.1.2.Generaia nti, maini cu tuburi electronice (1945-1955)
Circuitele logice din generaia nti erau realizate cu tuburi
electronice i aveau un consum energetic foarte mare. Principalele
caracteristice ale acestor calculatoare au fost:
-memoria realizat cu tambur magnetic;
-utilizarea cititorului/perforator de hrtie;
-existena a 10-20 instruciuni simple care constituiau baza unui
limbaj cod main.
Din punct de vedere logic nu era mare diferen fa de maina
Babbage dar tehnologic se intra n era electronic.
Principalele calculatoare din aceast generaie au fost:
ENIGMA, main realizat de Germania n timpul celui de-al doilea
rzboi mondial pentru transmiterea mesajelor codificate.
COLLOSUS, maini fabricate de Englezi pentru decodificarea
mesajelor ENIGMA. De menionat c la fabricarea lor a contribuit i Allan
Turing, cunoscut mai trziu drept creator al mainii TURING.
ENIAC (Electronic Numerical Integrator And Computer), construit
de ctre John Mauchley i John Eckert (Universitatea din Pensilvania), cu
colaborarea lui John von Neumann,. Era destinat rezolvrii ecuaiilor
difereniale cu derivate pariale i a avut aplicaii n domeniul militar, la
calcularea traiectoriilor balistice i chiar la fabricarea bombei atomice n
proiectul Manhatan. Avea urmtoarele caracteristici:
-19000 tuburi electronice i 1500 relee;
-30 uniti separate care procesau datele;

10

Sorin Adrian Ciureanu


-20 registre de cte 10 cifre zecimale destinate rezultatelor
finale i pariale;
-efectua 5000 operaii pe secund.
EDVAC (Electronic Discrete Variable Automatic Computer),
calculator cu numai 4000 tuburi electronice. Este important pentru c n
echipa care l-a proiectat s-a aflat i John von Neumann care n 1947 a
publicat principiile calculatorului modern, valabile i astzi. Maina lui von
Neumann
este un model de main universal, nespecializat, cu
urmtoarele elemente:
-o memorie coninnd programe (instruciuni) i date;
-o unitate aritmetic i logic(UAL);
-o unitate care permite schimbul de informaie cu perifericele (U I/E)
-o unitate de comand (UC).
Aceste dispozitive realizeaz funciile de baz ale unui calculator:
stocarea de date, tratarea datelor, micarea datelor i controlul lor, funcii
care sunt aceleai i n ziua de astzi. Calculatoarele moderne se bazeaz pe
schema lui von Neumann.
MANIAC , calculatorul de la Los Alamos Laboratory, utilizat la
proiectarea bombei atomice.
UNIAC 1, calculator lansat n 1951 de Eckert i Mauchley i utilizat
ntr-o aplicaie de predicie a alegerilor din SUA ctigate de Dwight
Eisenhower.
IBM 701, calculator cu memorie de 2k cuvinte a 36 bii i dou
instruciuni pe cuvnt (primul din seria de calculatoare lansate de celebra
firm IBM, nfiinat, de altfel, n 1911) .
IBM 704, cu 4kcuvinte de 36 bii.
1.3.1.3. Generaia a doua, calculatoare cu tranzistori (1955-1965)
John Bardeen, Walter Brattain i Wiliam Shockley au inventat n
1948 tranzistorul bipolar cu jonciune, ceea ce le-a adus n 1956 Premiul
Nobel pentru Fizic. Tranzistorul are aceleai funciuni ca tuburile
electronice cu vid dar are avantajul de a fi miniaturizabil.
Calculatoarele bazate pe tehnologia cu tranzistori au urmtoarele
caracteristici:
-utilizarea diodelor i tranzistorilor pe baz de germaniu i apoi pe
baz de siliciu ceea ce a condus la o putere disipat mai mic, gabarit redus
i siguran n funcionare;
-memorii pe inele de ferit, de 1000 de ori mai rapide dect cele din
generaia anterioar, avnd timpul de acces de 2-12 s.;

Arhitectura calculatoarelor

11

-apariia cablajului imprimat;


-apariia echipamentelor periferice precum discul, banda magnetic,
imprimanta;
-apariia limbajelor de nivel nalt ca Fortran, Cobol, Algol.
Dintre calculatoarele din aceast generaie, cele mai cunoscute sunt:
TX-0 (Tranzistorised eXperimental computer 0) realizat la MIT.
PDP-1 (Programmable Data Procesor) realizat de ctre DEC (Digital
Equipement Corporation) , avnd o memorie intern de 4kcuvinte a 18 bii
i ciclul instruciune de 5s., fiind echipat cu consol monitor CRT
(Cathode Ray Tube) cu posibilitatea de control al fiecrui punct de pe
ecran.
PDP-8 , cu o magistral unic i cu urmtoarele module: CPU,
memorie, consol, dispozitive I/E. A fost primul calculator numeric
comercial, de mare serie, vnzndu-se 5000 buci.
CDC 6600, produs de DEC i proiectat de Seymour Cray, viitorul
proiectant al calculatoarelor Cray 1 i Cray 2.
IBM 7094, cu memorie de 32 kcuvinte de 36 bii i ciclu instruciune
de 2 s.
n aceast perioad i n Romnia au nceput s se produc primele
computere, care n majoritate au fost prototipuri, DACIC, MECIPT, ANCA,
CETA, ele fiind realizate la Institutul de Fizic Atomic i la Institutele
Politehnice din Bucureti i Timioara.
1.3.1.4. Generaia a treia, calculatoare cu circuite integrate (19651980)
n 1958 a fost inventat circuitul integrat de ctre Robert Noyle sau,
dup alte surse, de ctre Jack Kilby de la Texas Instruments. Este vorba
despre gruparea pe o pastil de siliciu a mii i apoi milioane de
componente.. Principalele caracteristici ale calculatoarelor din aceast
generaie sunt:
-utilizarea circuitelor integrate pe scar redus, cu 100 tranzistori pe
chip;
-apariia memoriilor de semiconductoare, cu timp de acces de 0,575s;
-memorie extern de mare capacitate, discuri de mas i benzi
magnetice.
Sistemele de calcul din aceast generaie au fost create de:
IBM, cel mai reprezentativ fiind IBM 360;

12

Sorin Adrian Ciureanu

DEC, cu minicalculatoare din seria PDP 11/XX.


Minicalculatorul IBM 360 avea urmtoarele caracteristici:
-ciclul instruciune 250 s.;
-spaiul de adresare de 216 octei (19 Moctei);
-registre de lucru pe 32 bii;
-apariia multiprogramrii.
Minicalculatoarele PDP 11/XX aveau caracteristici asemntoare cu
ale lui IBM
Ccuvntul era, ns,de 16 bii (i apoi de 32 bii la cele din seria
VAX) iar raportul pre/performan era foarte bun, cel mai bun dina anii 80.
i n Romnia , n acea perioad (anii 80), a fost o emulaie i o
efervescen n construcia de calculatoare, Romnia fiind la un moment dat
pe locul 1 din vechiul lagr socialist n ceea ce privea echipamentele de
tehnici de calcul.
n domeniul calculatoarelor numerice, Romnia a produs:
FELIX C 512/1024, serie de calculatoare care avea ca patent un
calculator francez produs de firma CII. Din punct de vedere tehnologic, a
fost construit pe pori logice i bistabile iar urmaul su, FELIX 5000, a avut
n componen circuite medii integrate ca registre i numrtoare. De
remarcat c circuitele pentru FELIX C 512/1024 erau de provenien
romneasc, produse la IPRS Bneasa Microelectronica. Din punct de
vedere al caracteristicilor, FELIX avea cuvntul de 16 bii, o memorie de
maxim 1 Moctet pe baz de semiconductoare, o unitate de intrare/ieire
numit USM (Unitate de Schimburi Multiple) care emitea 5 instruciuni
speciale de intrare/ieire. Ca sistem de operare avea un sistem pe laturi,
numit SIRIS V, cu alocare de memorie cu partiii statice.
CORAL i INDEPENDENT, minicalculatoare ce emulau
instruciunile din PDP 11/44. Amndou calculatoarele romneti aveau
caracteristici tehnice asemntoare cu PDP 11/44, deosebirea dintre ele fiind
aceea c minicalculatorul CORAL avea n componen numai cipuri din
Europa de Vest i din America iar INDEPENDENT avea numai cipuri
romneti i ruseti. INDEPENDENT a fost proiectat de ITC (Institutul de
Tehnic de Calcul) iar Coral de un colectiv de la FCB (Fabrica de
Calculatoare Bucureti) dar toate erau produse de FCB. Sistemul de operare
era o prelucrare a SO RSX, numit MIX, creat de cei de la FCB.
RCD (Rom Control Data)
fabrica echipamente periferice
romneti. RCD era o societate mixt, romno-american, n colaborare cu
CD (Control Data). Se fabricau discuri magnetice de mas MD-40, MD-50
(de 50 Moctei), benzi magnetice CDC, imprimante liniare BP (Band

Arhitectura calculatoarelor

13

Printer). Crearea RCD ne-adus un mare avantaj deoarece toate


calculatoarele romneti erau echipate cu periferice Control Data. Datorit
acestui fapt am putut exporta calculatoare romneti FELIX n China,
INDEPENDENT n China, Cehoslovacia i R.D.German.
CORAL, dei era cel mai performant i fcut cu echipament
romnesc, nu a putut fi exportat deoarece sistemul de operare MIX era o
copie a RSX-ului .
n vest nu s-a putut exporta pe motiv de drept de autor iar n est cei
de la FCB nu au vrut s-l exporte fiind prea bun.
Oricum, n anii 70 eram cei mai buni productori de echipamente de
calcul din est. n anii 80, ns, am pierdut supremaia n favoarea Bulgariei
care a nvestit mai mult ca noi, n special n echipamente periferice i soft.
1.3.1.5. Generaia a patra . V.L.S.I. (1980-2005)
Apariia acestei generaii a fost posibil datorit perfecionrii
tehnologiei integratelor. Circuitele integrate VLSI (Very Large Scale
Integration) ajung la 1 miliard de tranzistoare pe cip. Calculatoarele din
aceast generaie se caracterizeaz prin urmtoarele:
-utilizarea circuitelor VLSI;
-apariia i dezvoltarea microprocesoarelor;
-dezvoltarea de noi tipuri de memorii (MOS, magnetice, holografice)
i echipamente periferice orientate pe sesizarea primar a datelor;
-interconectarea calculatoarelor n reele, nsoit de ntreptrunderea
industriilor de calculatoare i telecomunicaii;
-apariia i dezvoltarea mediilor de programe complexe cu puternice
faciliti grafice.
n aceast generaie au aprut la nceput calculatoarele personale de
tip Home Computer iar apoi cunoscutele Personal Computer, pe baz de
microprocesoare; dou dintre firmele cele mai importante care produc
microprocesoare sunt INTEL i MOTOROLA.
1.3.1.6. Generaia cincia
S-a ncercat o definire a generaiei a cincia, prin formularea
cerinelor ce stau n faa calculatoarelor la ora actual, cerine care cuprind
urmtoarele:
-o interfa inteligent care s permit dialogul pe baz de limbaj
natural (voce, sunete, imagini, informaie grafic);

14

Sorin Adrian Ciureanu

-crearea unei maini care s realizeze raionament pentru rezolvarea


problemei, fr cunoaterea prealabil a algoritmului;
-baze de date imense cu o cutare foarte rapid.
Tabelul 1.1. Tabel sintetic cu principalele evenimente din istoria
calculatoarelor
An
1642
1834
1904
1906
1936
1943
1944
1946

Nume
Blaise Pascal
Charles Babbage
J.A.Flemming
Lee de Forest
Konrad Zuse
Guvernul englez
H.Aiken
J.Mauchley i J.P. Eckert

1948
1948
1949

Bardeen,
Brattains
Sockley
Norbert Wiener
M.Wilkes

1951

MIT

1951

J.Mauchley i J.P. Eckert

1952
1955
19551960
!960/61
1962
1963
1964
1964

John von Neumann


Laboratoarele Lincoln
IBM

1965
1970
1970/71
1972
1974
1978
1978
1979
1980
1982

DEC
DEC
INTEL
INTEL
CRAY
INTEL
DEC
MOTOROLA
IBM
INTEL

DEC
IBM
BORROGHS
IBM
CDC

Eveniment
Prima main de calculat mecanic
Maina analitic
Inventarea diodei
Inventarea triodei
Primul calculator cu relee-Berlin
COLOSSUS, primul calculator cu tuburi
Primul calculator Mark 1
ENIAC, Pensilvania
University
Inventarea tranzistorului
Cibernetica
EDSAC, primul calculator cu program
nregistrat
WHIRLWIND, primul
calculator n timp real
UNIVAC, primul
calculator comercializat
IAS Princetown
TX-0 primul calculator cu tranzistoare
IBM 704
PDP 1
IBM 7094 (32 bii)
Limbajul ALGOL
IBM 360
CDC 6600, primul
calculator paralel
PDP-8
PDP-11
4004 primul microprocesor pe 4 bii
8008 primul microprocesor pe 8bii
CRAY 1 primul supercalculator
8080
UC pe un cip
VACS primul minicalculator pe 32 bii
68000
Primul PC
286

Arhitectura calculatoarelor
1983

SUA

1984
1985
1987
1989
1992
1993
1995
1996
1997
1998
1999
1999
2000

MOTOROLA
INTEL
MOTOROLA
INTEL
Lab CERN GENEVA
INTEL
SUNMYCROSYSTEMS
CYRYX
AMD
AMD
INTEL
AMD
AMD

15

Reeaua LAN
68020 primul microprocesor pe 32 bii
386
68030
486
WWW(World Wide Web)
PENTIUM
JAVA
686
RISC K5,K6
K6
PENTIUM III
ATHALON/47
SHARPTOOTH/K6-3

1.3.2. Concepte noi n evoluia calculatoarelor


n afara progresului tehnologic, concepiile noi au condus la o
dezvoltare rapid a sistemelor de calcul. Noile idei sunt legate, n primul
rnd, de arhitectura calculatoarelor. Menionm doar cele mai importante
dintre ele.
1.3.2.1. Microprogramarea
n 1951, Maurice Wilkes, un cercettor de la Universitatea din
Cambridge, a sugerat construirea unei maini pe trei niveluri, n loc de dou
cte erau pn atunci. Noul nivel propus de Wilkes avea rolul ca setul de
instruciuni s fie interpretat de microprogram, n loc s fie realizat direct pe
partea electronic. Acest concept, numit microprogramare, a devenit
dominant ncepnd cu anii 70.
1.3.2.2. Inventarea sistemului de operare
A fost proiectat i introdus cu scopul de a automatiza sarcinile
operatorului de calculator. Un sistem de operare este un program care
acioneaz ca un intermediar ntre utilizator i partea fizic a sistemului de
calcul i permite utilizarea eficace a componentelor unui calculator. Primul
sistem de operare a fost realizat, n 1955, de ctre programatorii de la
General Motors Research Center care au scris un astfel de program
intitulndu-l a monitor program for the IBM 701

16

Sorin Adrian Ciureanu

Un pas foarte important n cadrul dezvoltrii sistemelor de calcul a


fost crearea sistemelor de operare cu timesharing de ctre MIT la nceputul
anilor 60. La sfritul anilor 60, se remarc o serie de invenii precum
sistemul de operare UNIX care are deja un sistem de fiiere sofisticat,
gestiunea proceselor, interfa cu sistemul i o serie de instrumente
specializate n tratarea unor sarcini specifice. Aa cum arat numele, marca
depus UNIX desemneaz nceputul sistemelor compatibile.
1.3.2.3. Memoria Cache
Memoria cache a fost o idee simpl dar foarte eficient care a mrit
de zece ori viteza de calcul a unui sistem.

1.4. TIPURI DE ARHITECTURI ALE


CALCULATOARELOR NUMERICE
1.4.1. Arhitectura von Neumann
ntr-un articol publicat n 1947, John von Neumann a expus nite
principii care stau la baza calculatoarelor moderne. Acestea sunt:
-Existena unui mediu de intrare prin intermediul cruia s poat fi
introdus un numr practic nelimitat de date i instruciuni.
-Existena unei memorii n care s fie depui operanzii i
instruciunile i de unde s fie preluate rezultatele n ordinea dorit.
-Existena unei seciuni de calcul care s fie capabil s execute
operaii aritmetice i logice asupra datelor din memorie.
-Existena unui mediu de ieire prin intermediul cruia s poat fi
comunicat utilizatorului un numr nelimitat de instruciuni.
-Existena unei uniti de comand capabil s interpreteze
instruciunile citite n memorie i, pe baza informaiilor citite n memorie i
a informaiilor furnizate de seciunea de calcul, s fie capabil s decid
ntre mai multe variante de desfurare a operaiilor.
-Datele i instruciunile trebuie s fie stocate n memorie sub aceeai
form.

Unitate de
control

Dispozitiv
de intrare

Memorie

Unitate
logic
i
aritmetic

Dispozitiv
de ieire

Arhitectura calculatoarelor

17

Fig. 1.3. Modelul funcional al mainii John von Neumann

1.4.2. Maina Turing


n 1936, matematicianul englez Allan Turing a creat un automat
abstract care s opereze cu numere calculabile. Un numr calculabil este un
numr a crei parte zecimal poate fi determinat cu un numr finit de
iteraii.
Automatul a fost sintetizat pe baza urmtoarelor ipoteze:
a)Automatul are un numr n finit de stri.
b)Automatul se afl n orice moment ntr-o stare i, 1in, urmnd ca
n momentul imediat urmtor s se afle n starea j, 1jn.
c)Fiecare din cele n stri se caracterizeaz prin:
-valoarea caracteristic ei, care este o valoare curent a
numrului ce se calculeaz;
-funcia fj care aplicat strii ei permite obinerea urmtoarei
stri ej .
-deplasamentul dij care va trebui aplicat numrului pentru a
se realiza din starea i n starea j , adic j=i+dij
Modelul funcional al mainii construite pe baza acestor ipoteze este
dat n figura 1.4.

Procesor

18

Sorin Adrian Ciureanu


C

SR

Fig. 1.4. Modelul funcional al mainii Turing; SR-sistem reprezentativ;


C/P-cip citire/scriere.
-Sistemul reprezentativ (SR) sau memoria mainii este construit
dintr-o band magnetic de lungime practic infinit, mprit n segmente
de lungime egal, fiecare segment putnd stoca un numr finit de semne.
-Procesorul (P) este un circuit secvenial cu un numr finit de stri,
care poate executa urmtoarele instruciuni, (setul de instruciuni al
mainii):
-schimb segmentul de pe band de la poziia curent;
-poziioneaz capul de citire (C ) cu o poziie la dreapta;
-poziioneaz capul de citire cu o poziie la stnga;
-oprete sistemul.
Pentru a realiza un calcul cu aceast main, se nscriu datele ntr-un
mod convenabil i se descompune algoritmul de calcul, n funcie de modul
de reprezentare a datelor, ntr-o secven de instruciuni ale mainii. Ultima
instruciune este cea de oprire a mainii.

1.5. CLASIFICAREA CALCULATOARELOR


Este destul de dificil s se clasifice tipurile de calculatoare din cauza
multitudinii lor. Totui, anumite taxonomii s-au impus. Vom prezenta trei
clasificri dup arhitectur i una strict comercial.

1.5.1. Taxonomia Flynn


A fost publicat n 1966 de ctre Flynn care avea n vedere existena
ntr-un sistem de calcul a dou fluxuri:
-fluxul de instruciuni, care reprezint programul;

19

Arhitectura calculatoarelor

-fluxul de date, care reprezint datele de intrare sau rezultatele


pariale.
Clasificarea lui Flynn ia n consideraie gradul de multiplicitate ale
celor dou fluxuri i identific patru tipuri de arhitecturi:
SISD (Single Instruction Single Data)
SIMD (Single Instruction Multiple Data)
MISD (Multiple Instructions Single Data)
MIMD (Multiple Instructions Multiple Data)
SISD realizeaz o execuie secvenial a instruciunilor (figura 1.5.).
Principalul neajuns al acestei arhitecturi este viteza de execuie care , la un
moment dat, este plafonat, situaie denumit gtul sticlei lui Neumann
(Neumann Bottleneck). Spargerea acestei limitri este realizat prin
arhitectura paralel.
UC
C

UP
C

MM
C

Fig. 1.5. Arhitectura SISD; UC-seciunea de comand a Unitii


centrale; UP-seciunea de prelucrare a Unitii centrale; MM-modul de
memorie; FD-flux de date; FI-flux de instruciuni.
Arhitectura SIMD se caracterizeaz prin n uniti de procesare (UP)
care opereaz sub controlul unui flux unic de instruciuni (FI) lansat de o
singur unitate de comand (UC).

UP1
UP2
UC

FD1
FD2

MM!
MM2

FI

UPn

FDn

MMn

20

Sorin Adrian Ciureanu

Fig. 1.6. Arhitectura SIMD; UC-seciunea de comand a Unitii


centrale; UP-seciuni de prelucrare a Unitii centrale; MM-moduri de
memorie; FD-flux de date; FI-flux de instruciuni.
Cele mai cunoscute maini SIMD sunt calculatoarele vectoriale.
Acestea transform instruciuni care se execut n n pai ntr-o main
SIMD, n instruciuni care se execut ntr-un singur pas. De exemplu, suma
a doi vectori: c[i]=a[i]+b[i] pentru i=1n se face ntr-un pas, fiecare
Unitate de Prelucrare calculnd o component a vectorului sum.
MISD nu are nici un sens i de aceea nu este utilizat.
MIMD cuprinde dou feluri de maini:
-multiprocesoare i
-multicalculatoare.
Multiprocesoarele se caracterizeaz prin existena memoriei comune
la care au acces n procesoare. Schimbul de informaie dintre procesoare se
face prin variabilele partajate din memoria comun la care au acces toate
procesoarele, ns accesul trebuie fcut prin excludere mutual pentru a
realiza ceea ce se numete consistena memoriei.
Multicalculatoarele se caracterizeaz prin existena unui numr
foarte mare de calculatoare ( de la ordinul sutelor n sus) care sunt legate
printr-o reea topologic. Fiecare procesor are memoria lui local, vzut
doar de el, iar comunicarea ntre procesoare se face prin mesaje.

1.5.2. Taxonomia Wang


Aceast clasificare presupune o organizare matricial a datelor. O
matrice de dimensiunea m x n are m cuvinte, fiecare cuvnt are o lungime
de n bii. Criteriul de clasificare este gradul de paralelism n procesarea
datelor organizate matricial. Conform acestui criteriu exist patru tipuri de
arhitecturi i anume:
-WSBS (Word Serial-Bit Serial) n care se lucreaz pe un singur
cuvnt, fiecare cuvnt fiind prelucrat serial bit cu bit, ns1, ms1.
-WSBP (Word Serial-Bit Paralel) n care se lucreaz pe un singur
cuvnt , biii fiecrui cuvnt fiind prelucrai simultan, n>1, ms1.
WPBS (Word Paralel-Bit Serial) n care se lucreaz pe un singur bit
la toate cuvintele simultan, ns1, m>1.
-WPBP (Word Paralel-Bit Paralel) n care se lucreaz simultan pe
toate cuvintele i pe toi biii, n>1, m>1.
WSBS nu are elemente de paralelism.

Arhitectura calculatoarelor

21

WSPB i WPBS sunt parial paralele, fiind orientate pe prelucrarea


vectorilor.
WPBP este complet paralel.

1.5.3. Taxonomia Shore


Spre deosebire de Flynn, Shore i-a bazat clasificarea pe modul n
care este organizat calculatorul din prile sale componente. Din acest punct
de vedere, au fost identificate ase tipuri de maini, fiecreia atribuindu-se o
cifr roman.
Maina I are o arhitectur convenional von Neumann, cu
urmtoarea structur:
-unitate de comand (CU)
-unitate de procesare (PU)
-memorie pentru instruciuni (IM)
-memorie pentru date (DM)
IM

CU
PU

(orizontal)

DM

Fig. 1.7. Maina I Shore.


O citire a DM produce toi biii unui cuvnt, care sunt prelucrai n
paralel de PU, PU putnd conine mai multe uniti funcionale.
Aceast clas include calculatoare vectoriale, de exemplu CRAY 1.
Maina II este similar mainii I, cu deosebirea c, n timp ce
maina I citete slice-uri orizontale, maina II citete un slice vertical.
IM

CU

PU

DM

22

Sorin Adrian Ciureanu

Fig. 1.8. Maina II Shore


Exemple de calculatoare de tip maina II Shore : ICL, DAP,
STARAN etc.
Maina III este o combinaie a mainilor I i II. Un exemplu de
astfel de main este calculatorul ortogonal Shooman(1970)
IM

CU

PU

PU

DM

(orizontal)

(vertical)

Fig. 1.9. Maina III Shore


Masina IV se obine prin multiplicarea unitilor PU i DM din
maina I i prin trimiterea acestui ansamblu de la o singur unitate de
control UC. Exemplu: PEPE.
CU
PU

PU

PU

DM

DM

DM

Arhitectura calculatoarelor

23

Fig. 1.10. Maina IV Shore


Maina V este exact maina IV cu facultatea suplimentar c
unitile PU sunt aezate pe o linie i se asigur conexiuni ntre vecinii cei
mai apropiai; fiecare PU poate adresa informaii din memoria sa dar i din
cea a vecinilor si imediai. Este un masiv conectat. Exemplu: ILIA CIV.
CU

PU + DM

Fig. 1.11. Maina VI Shore


Maina VI este denumit maina cu logica n memorie. Este o
abordare alternativ a distribuirii
comenzii n memorie. Exemplu:
calculatoare cu memorii asociative.

1.5.4. Clasificare comercial


Dac primele trei clasificri erau strict legate de arhitectur,
clasificarea urmtoare are ca punct de vedere piaa de calculatoare.
Sistemele de calcul pot fi:
-calculatoare personale;
-servere;
-sisteme dedicate.
Calculatoarele personale sunt cele mai populare. Au cel mai mic
cost i n ultimii ani s-au produs 150-200 milioane pe an. Preul lor nu
depete suma de 10000 dolari.
Serverele sunt destinate s ofere servicii tot mai sofisticate de reea.
Costul lor este de 10.000 10.000.000 dolari. n ultimii ani s-au produs
aproximativ 4 milioane servere pe an.
Sistemele dedicate sunt construite pentru anumite aplicaii speciale.
Costul lor este de 10.000-100.000 dolari.

1.6. TRENDUL N ARHITECTURA


CALCULATOARELOR

24

Sorin Adrian Ciureanu

Din punct de vedere tehnologic cele mai importante tendine sunt:


-gradul de integrare al tranzistorilor pe cip crete cu cca. 55% pe an;
tehnologia de integrare a microprocesoarelor a evoluat de la 10 microni
(1971) la 0,18 microni 2001.
-frecvena ceasului crete i ea cu 50% pe an;
-pentru memoriile DRAM, densitatea de integrare crete cu cca 4050% pe an, iar timpul de acces aferent scade cu 3 % pe an.
-tehnologia i performanele reelelor se mbuntesc semnificativ.
Se poate spune c aceste tendine respect legea lui Gordon Moore,
cofondator mpreun cu Robert Noyce a societii INTEL. Acesta, n 1965,
enun celebra sa lege: numrul de tranzistori din circuitele integrate se va
dubla la fiecare doi ani . Aceasta nseamn c, la fiecare 10 ani se schimb
prefixul de msurare, adic totul crete de 1000 de ori. ntr-adevr, dac
hard discurile din anii 90 aveau 100 MB, n 2000 ele au 100 GB. Frecvena
ceasului era n 1990 de 8 MHz iar n 2000 era de 1 GHz etc.
Ceea ce s-a ntmplat ntr-adevr cu procesoarele INTEL n ultimele
trei decenii se poate constata din tabelul de date reale dat n continuare, date
care verific destul de bine legea lui Gordon.
Tabelul 1.2. Evoluia procesoarelor Intel ntre 1972 i 2000
anul
numele
Frecvena
Tranzistor
(nr./cip)
1972
8008
200 KHz
3500
1974
8080
2 MHz
6000
1976
8085
5 MHz
6500
1978
8086
10 MHz
29000
1982
286
12 MHz
134.000
1985
386
16 MHz
275.000
1989
486
25 MHz
1,2.106
1993
P
60 MHz
3,1.106
1997
PII
300 MHz
3,3.106
1999
PIII
600 MHz
9,5.106
2000
PIV
1,5 GHz
42.10.6
ntre cele mai evidente tendine de evoluie n arhitectur amintim:
-exploatarea paralelismului la nivelul instruciunilor i firelor de
execuie, att prin tehnici statice (soft) ct i dinamice (hard); exist i
tehnici hibride cum ar fi cazul procesorului Intel Ithamium IA-64;

Arhitectura calculatoarelor

25

-structuri tot mai performante de ierarhizare a sistemului de memorie


prin utilizarea arhitecturilor evoluate de memorie cache;
-reducerea latenei critice de program, prin tehnici de predicie;
-utilizarea microprocesoarelor Shered memory n special n cadrul
arhitecturii serverelor i staiilor grafice.

Capitolul 2
UNITATEA CENTRAL
Unitatea central (UC), n englez CPU=Central Processing Unit,
este partea din calculator care are rolul de a interpreta i executa
instruciunile unui program, de a citi sau salva n memorie rezultatele i de a
comunica cu unitile de schimb. Toate aceste activiti sunt cadenate de un
ceas la frecven constant care mparte timpul n fraciuni de aceeai durat
numite cicluri.

2.1. STRUCTURA UNITII CENTRALE


Unitatea Central are n componen:

26

Sorin Adrian Ciureanu


-Unitatea Aritmetic i Logic (UAL);
-Unitatea de comand (UCd);
-Registrele generale (RG).
a) Unitatea Aritmetic i Logic (UAL)

UAL execut operaii aritmetice (adunare, scdere, nmulire


mprire, complement fa de 1, complement fa de 2 etc.) , operaii logice
(negare, i, sau, suma modulo 2), decalaje i rotaii. Are dou intrri de date,
pe n bii, o ieire corespunztoare operaiei efectuate, pe n bii, eventual o
ieire corespunztoare flagurilor poziionate de operaie i o intrare de
comand care selecioneaz operaia de efectuat.
Toat Unitatea Aritmetic i Logic este grupat n jurul unui
sumator paralel care poate aduna coninutul a dou registre multiplexate la
cele dou intrri ale sumatorului. Operaiile de nmulire i mprire se
realizeaz, cu ajutorul diferiilor algoritmi, prin adunri i deplasri
stnga/dreapta
succesive. Scderea se realizeaz ca o adunare cu
complementul scztorului.
Schema unei UAL este dat n figura 2.1.
Set
de
registre

Registru
acumulator

Registru
tampon

Sumator

Fig 2.1. Schema bloc UAL

Arhitectura calculatoarelor

27

b) Unitatea de Comand (UCd)


Unitatea de comand este format din:
-Generatorul de Faze (GF);
-Generatorul de Tact (GT);
-Blocul Circuitelor de Comand (BCC).
Blocul circuitelor de comand (BCC) dirijeaz toate operaiile
executate n cadrul unei instruciuni. Exist
microoperaii, care sunt
operaiile elementare executate ntr-o instruciune, i microcomenzi, care
sunt semnalele generate de BCC
pentru execuia microoperaiilor.
Microcomenzile sunt trimise elementelor de execuie din structura
calculatorului: registre, UAL, memorie, porturi etc. O instruciune este, de
fapt, o succesiune de microoperaii.
Toate microoperaiile care se execut n acelai timp definesc o stare
n execuia unei instruciuni, stare numit faz.
Generatorul de faze (GF) construiete succesiunea fazelor necesar
pentru execuia instruciunii.
Generatorul de tact (GT) d cadena schimbrilor de stare pentru
toate circuitele secveniale.
c) Registrele generale (RG)
Registrele generale (RG) sunt considerate o memorie foarte rapid i
de foarte mic capacitate. Structural fac parte din UC i, n marea majoritate
a arhitecturilor, ele sunt adresabile pe magistral.
Exist dou moduri de conexiune a registrelor generale:
-RG conectate direct ntre ele:
-RG conectate la magistrale.

2.2. CARACTERISTICILE UNITII CENTRALE


Performanele n funcionarea unei Uniti Centrale sunt redate prin
urmtoarele caracteristici:
-lungimea cuvntului;
-frecvena ceasului;
-numrul de instruciuni executate n unitatea de timp;
-gradul de paralelism.

2.2.1. Lungimea cuvntului

28

Sorin Adrian Ciureanu

Calculatoarele lucreaz cu ajutorul cuvintelor de cod a cror cantitate


de informaie este msurat n bii. Numrul de bii reprezint lungimea
unui cuvnt i este multiplu de doi. Un cuvnt poate reprezenta:
-o instruciune;
-un segment de date.
ntr-un calculator, lungimea cuvntului se identific cu numrul de
bii ai instruciunii. Cele mai noi calculatoare au instruciuni pe 64 bii.
Aceasta este o caracteristic principal a UC . Nu este obligatoriu ca
lungimea cuvntului s fie aceeai cu dimensiunea magistralei de memorie
pe care se aduc instruciunile din UM n UC. Un calculator poate avea, de
exemplu, lungimea instruciunii de 64 bii i lrgimea magistralei de 32 bii;
pentru aducerea unei instruciuni din memorie sunt necesare, n acest caz,
dou apeluri la memorie.

2.2.2. Frecvena ceasului


Orice calculator are un generator de impulsuri, numit ceasul unitii
centrale. Acesta este realizat cu un cuar care emite impulsuri cu frecven
fix.
Ceasul iniial sufer dou tipuri de operaii:
-operaia de divizare a ceasului, ceea ce nseamn c ceasul iniial,
cu cuar, sufer modificarea frecvenei sale;
-operaia de amplificare a semnalului de ceas.
Pe acest ceas, care este inima calculatorului, au loc toate
evenimentele hard din UC.

2.2.3. Numrul de instruciuni executate


n unitatea de timp
Dac facem urmtoarele notaii:
f = frecvena ceasului, n Hz
N = numrul mediu de ceasuri n care se execut o instruciune
n = numrul de instruciuni executate ntr-o secund
atunci :
n

f
N

De exemplu, pentru un calculator care are frecvena ceasului de 2


GHz i care execut dou instruciuni pe ceas, numrul de instruciuni
executate n unitatea de timp este:

Arhitectura calculatoarelor
n

29

2 GHz
f

4.10 9 4
1
miliarde instruciuni pe secund
N
2

Pentru calculatoarele moderne se adopt o unitate de msur numit


MIPS (milioane de instruciuni executate ntr-o secund). n exemplul
precedent, parametrul n va fi de 4000 MIPS.
Trebuie precizat c acest parametru (n) este mai aproape de adevr
dect frecvena ceasului (f). Exist calculatoare cu frecven mai mare dar
care sunt inferioare calculatoarelor cu frecvena ceasului mai mic, tocmai
datorit mrimii N. De exemplu Intel 586 cu frecvena 100 MHz i Pentium
I cu frecvena 66 MHz. Ar fi mai bine s fie afiat parametrul n n locul
parametrului f, dar partea dificil este calcularea practic a lui N. Este
dificil, deoarece, n setul de instruciuni, fiecare are N diferit i chiar
aceeai instruciune are N diferit n funcie de contextul rulrii.

2.2.4. Gradul de paralelism


Exist dou feluri de paralelism:
-paralelism la nivel de instruciuni (pipeline)
-paralelism la nivel de procesor.
2.2.4.1. Paralelism la nivel de instruciuni (pipeline)
a)Principiul pipeline-ului este acela al liniei de montaj (de
asamblare):
-mprirea unei sarcini n mai multe subsarcini de durate egale,
numite etaje;
-executarea simultan a diferitelor subsarcini din mai multe sarcini.
n felul acesta se mrete debitul de sarcini al sistemului. Sistemul va
fi caracterizat prin doi parametri: durata individual a unui etaj (T) i
numrul de etaje (l)din pipeline. Latena L este durata total de execuie a
unei sarcini: L= lT
Debitul, d, al pipeline-ului depinde de numrul n de sarcini de
executat. Timpul necesar pentru execuia n pipeline a n sarcini este timpul
de execuie a primei sarcini, L= lT, plus timpul necesar pentru a le termina
pe celelalte n-1 urmtoare:
d

n
L ( n 1)T

sau, la limit:

30

Sorin Adrian Ciureanu

lim d T 1
n

Apare rezultatul esenial: pentru un mare numr de sarcini, debitul


nu depinde de laten ci de durata individual a fiecrui etaj. Deci, debitul
optimal va fi atins fracionnd ct mai fin posibil sarcina n subsarcini.
Evident, fracionarea are limite tehnice.
b)Clasicul pipeline pentru execuia instruciunilor
n calculatoare, pipeline-ul const n fracionarea execuiei unei
instruciuni n mai multe module, fiecare modul executnd hard o parte de
instruciune. Conceptul de pipeline nseamn de fapt o band de asamblare
cu segmente (etaje), fiecare segment executnd o parte de instruciune.
De exemplu, o band de asamblare cu 5 segmente. Aceste 5
segmente sunt:
S1 unitate de extragere a instruciunii
S2 unitate de decodificare a instruciunii
S3 unitate de calcul i extragere a operanzilor
S4 unitate de execuie propriu zis a operaiei instruciunii
S5 unitate de scriere a rezultatelor
Din figura 2.2. se observ cum funcioneaz paralelismul ntr-o
band de asamblare, la un moment de timp fiecare segment executnd unul
din cele 5 segmente de instruciune diferite. Dac timpul de execuie a unui
segment este de 1 secund, (t1 = t2=.= t10 = t11 = 1 s) atunci timpul de
execuie a 7 instruciuni este, aa cum se vede n figur, de 11 secunde. Pe o
main normal, fr pipeline, timpul de execuie a 7 instruciuni, fiecare
necesitnd 5 secunde, ar fi de 35 sec. Efectul se vede n creterea debitului
n executarea instruciunilor.
S1

S2

S3

S4

S5

(a)
S1
S2
S3
S4
S5

2
1

3
2
1

4
3
2
1

5
4
3
2
1

6
5
4
3
2

7
6
5
4
3

8
7
6
5
4

9
8
7
6
5

10
9
8
7
6

Timpi de
execuie a
segmentelo
r

t1

t2

t3

t4

t5

t6

t7

t8

t9

t10

11
10
9
8
7
t11

31

Arhitectura calculatoarelor

(b)
Fig.2.2. Schema unei benzi de asamblare cu 5 segmente; (a) schema de
funcionare; (b)diagrama temporar a execuiei segmentelor.
Exist i sisteme cu dou benzi de asamblare, ca n figura 2.3.
S2

S3

S4

S5

S2

S3

S4

S5

S1

Fig.2.3. Pipeline cu dou benzi de asamblare.


Un astfel de sistem are o singur unitate de extragere a instruciunii
(S1) care extrage perechi de instruciuni i le plaseaz pe cele dou benzi.
Condiia de a lucra n paralel este ca cele dou instruciuni s nu i dispute
aceeai resurs i s nu depind una de rezultatul celeilalte. Aceast condiie
este garantat fie de compilator, fie de un hard suplimentar dotat cu un
sistem de predicie.
Calculatoarele Pentium I erau dotate cu dou benzi de asamblare:
-band de asamblare U (U pipeline), band principal, care putea
executa orice instruciune;
-band de asamblare V (V pipeline), care putea executa doar
instruciunile simple n numere ntregi i o singur instruciune simpl n
virgul mobil.
Existau reguli destul de complicate pentru mperecherea
instruciunilor. Erau extrase cte dou instruciuni i dac erau compatibile
erau executate, dac nu, se executa doar prima pe banda U, a doua fiind
pstrat i mperecheat cu cea care urma. n acest mod, s-a constatat c
Pentium I era de dou ori mai rapid dect un 586 la aceeai frecven.
c) Arhitecturi suprascalare
Pornind de la ideea benzilor de asamblare , s-a ajuns la concluzia c
este mai benefic de a avea o singur band de asamblare dar cu mai multe
uniti funcionale. O astfel de arhitectur se numete superscalar, termen
introdus de Agerwals i Cocke n 1987. n figura 2.4. este dat o astfel de
arhitectur.
UAL
S4

UAL

S1

S2

S3

lLOAD

STORE

VIRGUL
FLOTANT

S5

32

Sorin Adrian Ciureanu

Fig. 2.4. Procesor superscalar cu 5 uniti funcionale.


Ideea arhitecturii superscalare este c segmentul S3 poate lansa
instruciuni mult mai rapid dect le poate executa S4, deci, la o band
simpl exist o gtuire de timp ntre S3 i S4. La arhitectura superscalar, se
mparte unitatea de execuie S4 n uniti funcionale pe tipuri de
instruciuni de ncrcare ( LOAD), de memorie (STORE),de virgul mobil.
2.2.4.2. Paralelism la nivel de procesor
Banda de asamblare sau arhitectura superscalar nu cresc
performanele n mod simitor. Mult mai eficient este mrirea numrului de
procesoare. Acest lucru se ntmpl n :
-mainile SIMD, calculatoare vectoriale;
-mainile MIMD, multiprocesoare;
-mainile MIMD, multicalculatoare.

2.3.

SETUL DE INSTRUCIUNI

Operaiile unitii centrale sunt determinate de instruciunile pe care


ea le execut. Ansamblul de instruciuni pe care o anumit UC le poate
executa constituie setul de instruciuni caracteristic acelei uniti. A
concepe o Unitate Central nseamn, n cea mai mare parte, a concepe un
anumit set de instruciuni. Setul de instruciuni trebuie s fie suficient de
expresiv pentru a codifica orice instruciune dintr-un limbaj de nivel nalt.

Arhitectura calculatoarelor

33

Astfel, o instruciune dintr-un limbaj de nivel nalt corespunde de fapt mai


multor instruciuni din limbajul main.
Pentru a concepe un set de instruciuni, care influeneaz n mare
parte proiectarea unei UC, trebuie s se aleag:
- operaiile de executat, numrul i complexitatea lor;
- tipurile de date suportate de operaii;
- registrele, numrul i utilizarea lor;
- adresarea datelor;
- formatul adic lungimea instruciunii, fix sau variabil, numrul
i mrimea cmpurilor.
Toate aceste aspecte sunt foarte legate ntre ele i trebuie considerate
un ansamblu.
O instruciune trebuie s conin diferite informaii cerute de UC:
-codul operaiei (opcode), un cod binar ce identific operaia de
executat;
-referine despre operanzii surs, adic una sau mai multe adrese ce
fac referire la operanzii parametri ai operaiei (care pot proveni din
memorie, dintr-un registru al UC sau dintr-un periferic);
-referine despre operandul rezultat ( operaia poate produce un
rezultat i poate s-l dea explicit);
-referin despre instruciunea urmtoare, (indicaie pentru UC unde
s gseasc instruciunea urmtoare celei curente; ea poate s fie implicit,
ca atunci cnd instruciunea urmtoare este contigu instruciunii curente).

2.3.1.

Tipuri de instruciuni

Numrul i natura opcod-urilor difer de la o main la alta. Se pot


cita totui unele categorii.
-Transfer de date. Aceste instruciuni specific amplasarea
operanzilor surs i destinaie, dimensiunea datelor de transferat i modul de
acces la aceste date (modul de adresare).
-Operaii aritmetice. Toate mainile includ operaiile de baz cu
ntregi cu semn, cea mai mare parte conin instruciuni pentru operaii n
virgul flotant i uneori sunt disponibile i alte operaii .
-Operaii logice. Servesc la manipularea datelor bit cu bit, la
decalaje .a.
-Conversii. Schimb formatul unei date (de ex. din zecimal n binar).
-I/E. Transfer de date cu intrri/ieiri.

34

Sorin Adrian Ciureanu

-Controlul sistemului. Sunt instruciuni rezervate unui mod


privilegiat de execuie ( de ex. pentru utilizarea sistemului de exploatare).
-Transfer de control. Instruciuni care implic un schimb explicit a
contorului ordinal, pentru a executa un salt condiionat sau o repetiie.
Datele asupra crora acioneaz instruciunile, operanzii, pot fi
clasificai n urmtoarele categorii:
-adresele, care pot fi considerate ca ntregi fr semn, i asupra
crora se pot executa calcule;
- numerele, ntregi, n virgul fix sau flotant, care pot avea roluri
specifice (de ex. contor, mrimea cmpurilor);
-caracterele, sub form de cod ASCII;
-datele logice , adic secvene de bii avnd fiecare un sens (ex. un
tabel de booleene).
Anumite maini folosesc tipuri de date mai evoluate ca liste sau
iruri de caractere.

2.3.2. Formatul unei instruciuni


Fiecare instruciune este reprezentat printr-o secven de bii,
mprii n cmpuri. Exist diferite formate de instruciuni dup numrul de
pri rezervate operanzilor. n timpul execuiei unei instruciuni aceasta este
ncrcat n registrul IR din UC care trebuie s extrag din ea diferite
cmpuri.
O operaie face referin la datele surs i poate preciza i o
destinaie. Aceste referine sunt de fapt nite adrese de date.
Formatul instruciunii corespunde numrului de cmpuri din
instruciune rezervat acestor adrese.
Teoretic ar fi necesare 4 : doi operanzi, un rezultat i urmtoarea
instruciune. n practic, ns, exist:
-format cu trei adrese, puin utilizat pentru c instruciunile sunt prea
lungi;
-format cu dou adrese, una din adrese fcnd oficiu de surs i
destinaie;
-format cu o adres, instruciuni folosind sistematic un registru UC,
acumulatorul, pentru a pstra un operand i rezultatul;
-format fr nici o adres , instruciunile folosind sistematic o pil
sau o stiv (structuri gestionate n manier FIFO).
Cu ct instruciunile sunt mai scurte, cu att UC este mai puin
complex dar, fiind mai multe instruciuni, programele se vor executa mai

35

Arhitectura calculatoarelor

lent. Formatul unei instruciuni definete cmpurile instruciunii (opcodul i


adresele) precum i modul de adresare utilizat.

2.3.3. Modul de adresare


Dup posibilitatea gsirii operanzilor, exist mai multe moduri de
adresare:
-adresare imediat;
-adresare direct;
-adresare indirect;
-adresare indexat.
a)Adresare imediat
Operandul se afl chiar n cmpul instruciunii.
Instruciune

OPERAND
Cmp operand

MOV R 20000
Se transfer valoarea 20000 n registrul R.
b)Adresare direct
Operandul se gsete la o adres care exist n instruciune
Cmp adres

ADRES
OPERAND

MOV R
100
100
20000
n cmpul de adres al instruciunii se afl o adres (100) la care
exist operandul.
c) Adresare indirect
n cmpul de adres al instruciunii se afl o adres. La acea adres
se afl operandul. Numrul de direcionri depinde de fiecare calculator n
parte.
Cmp adres

ADRES
Ades

Operand

36

Sorin Adrian Ciureanu

MOV
R
100
100
200
200
20000
La adresa 100 din cmpul instruciunii se afl alt adres, 200, iar la
aceast adres se afl operandul.
a) Adresare indexat
La adresarea indexat particip un registru numit registru INDEX.
Adresa operandului este:
Adresa operand = valoareCMP ADRES + valoareREGISTRU INDEX
MOV
R
100
RINDEX
600
100
700
Adresa calculat: 600 + 700 = D00
D00
20000

2.4.

UNITATE CENTRAL CABLAT

ntr-o UNITATE CENTRAL CABLAT toate transferurile se fac


n mod hard, de ctre o unitate de comand. Prile componente ale unei
astfel de UC, aleas ca exemplu (figura 2.5.), sunt:
-registrul A, numit registru acumulator (32 bii);
-registrul T, numit registrul tampon, cu rol de a pstra rezultatele
pariale, (32 bii);
Bus local n UC
INDEX

Bus
memorie

ADRMEM

M
RI
PC

RG
RG 1
RG 2

SUMATO
R

RG 16

Z
S
C
D

U
M
E
M

Arhitectura calculatoarelor

37

IC

Fig. 2.5. Schema bloc a unei uniti centrale cablate.


-registrul M, care are rolul de a reine datele scrise sau citite din
unitatea de memorie (32 bii);
-registrul RI, care are rolul de a stoca instruciunea pe toat durata
execuiei sale;
-registrul PC, care are rolul de a reine adresa urmtoarei instruciuni
din program;
-registrul ADRMEM, care adreseaz memoria, att la scriere ct i la
citire; de asemenea, prin ADRMEM se adreseaz i cele 16 registre generale
(RG), dar pe bus-ul local nu pe cel al memoriei;
ADRMEM

ADRMEM

UM
M
UM
citire
scriere
Adresele de registre generale sunt primele 16 adrese de memorie, adrese
rezervate exclusiv pentru RG, neputnd fi utilizate ca adrese de memorie;
-!6 registre generale (RG) adresate pe bus-ul local al UC-ului;
-registrul INDEX , care particip la calculul adresei n mod indexat;
-4 indicatori de condiie (ZC) cu urmtoarele semnificaii:
Z arat dou situaii
Compararea ntre registrele A i T
Z=1 A=T
Z=0 AT
Coninutul acumulatorului este zero (Z=1)
S
S=1 rezultat negativ (n A)
D
D=1 depire
C
C=1 transport

38

Sorin Adrian Ciureanu

-BUS-ul local, un bus foarte rapid n interiorul UC-ului;


-BUS-ul de memorie, un bus mai lent care face legtura UCUM;
Convenional, o adres este o adres de octet. Un cuvnt este pe 32
bii, deci pe 4 octei.
Adresele din PC vor evolua cu 4, urmtoarea adres de instruciune
fiind PC+4.
Adresele celor 16 registre generale sunt:
RG 1 0 RG 5 10 RG 9 20 RG 13 30
RG 2 4 RG 6 14 RG 10 24 RG 14 34
RG 3 8 RG 7 18 RG 11 28 RG 15 38
RG 4 C RG 8 1C RG 12 2C RG 16 3C
O instruciune are 32 bii i are urmtoarea structur:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
COD MS

SURSA

MD

DESTINAIE

COD 4 bii codul instruciunii (calculatorul are 16 instruciuni)


MS - modul operandului surs 2 bii
00 mod imediat
01 mod direct
10 mod indirect
11 mod indexat
SURSA cmpul operandului SURSA 12 bii
MD modul destinaie
00 mod imediat
01 mod direct
10 mod indirect
11 mod indexat
DESTINAIE cmpul operandului DESTINAIE 12 bii
Setul de instruciuni executate de acest calculator este de numai 16
instruciuni.
Tabelul 2.1. Lista de instruciuni a calculatorului
COD
0000
0001
0010
0011

MNEMONIC
ADD
MOV
CMP
C1

ACIUNE
SURS+DESTINAIEDESTINAIE
SURSADESTINAIE
SURSA compar cu DESTINAIEpoziioneaz Z
SURSAcomplementDESTINAIE

Arhitectura calculatoarelor
0100

DDn

0101
0110
0111
1000
1001
1010
1011
1100
1101

DSn
SM2
SAU
SI
INC
DEC
SWAP
SALTNEC
SALTCOND

1110
1111

DDCn
DSC n

39

SURSA deplasare dreapta cu n poziii DESTINAIE : n


SURSA deplasare stnga cu n poziii DESTINAIE : n
SURSA suma modulo 2 DESTINAIE DESTINAIE
SURSA sau DESTINAIE DESTINAIE
SURSA i DESTINAIE DESTINAIE
SURSA + 1 DESTINAIE
SURSA 1 DESTINAIE
SURSA1-16 DESTINAIE17-32 SURSA17-32 DESTINAIE1-16
SALT LA ADRESA DAT DE SURS
DAC Z=1 SALT LA ADRESA DIN SURS, Z=0 PROGR
CONTINU N SECVEN
SURSA deplasare circular dreapta cu n poziiiDESTINAIE n
SURSA deplasare circular stnga cu n poziiiDESTINAIE n

Fiecare instruciune, pentru a fi executat, are o serie de comenzi


care, la UC cablat, sunt efectuate de ctre partea hardware a unitii
centrale.
Orice instruciune are o parte comun care se numete ifetch
(instructionfetch) i care este partea de aducere a instruciunii din memorie
n UC. Ea are urmtoarele comenzi:
PC ADRMEM
ADRMEM

UMEM

CITIRE

M RI
PC PC + 4
n continuare, s vedem care sunt comenzile pentru diferite
instruciuni care lucreaz n diferite tipuri de adrese.
1)
COD 0001
MNEMONIC ADD
MS 00 - imediat
SURSA 02A
MD 00 - imediat
DESTINAIA - 05B
Adresa instruciunii 100
Instruciunea este
000A805B
Comenzi:
ifetch:
PC ADRMEM
100
ADRMEM

40

Sorin Adrian Ciureanu


M
UMEM
000A805B
CITIRE

M RI
PC PC + 4
RI7-18 A
RI21-32 T
A+T A
A RI

000A805B
104
0000 002A
0000 005B
0000 0085
0000 0085

2)
COD 0001
MNEMONIC MOV
R5 ABCDEF01
MS 01 - direct
SURSA RG5 10
MD 01 - direct
DESTINAIA - RG16 3C
Adresa instruciunii 200
Instruciunea este 0404103C
Comenzi:
ifetch:
PC ADRMEM
200
ADRMEM

UMEM
M RI
PC PC + 4
RI7-18 ADRMEM

0404103C
0404103C
204
10

ADRMEM

M
RG5
RI21-32 ADRMEM

ABCDEF01
3C

ADRMEM

RG16

3)
COD 0010
MNEMONIC CMP
MS 10 - indirect
SURSA 800
MD 10 - indirect
DESTINAIA - 900
Adresa instruciunii 200
Instruciunea este 1A002900

ABCDEF01

800 F00
900 E00
F00 ABCDEF01
E00 ABCDEF01

41

Arhitectura calculatoarelor
Comenzi:
ifetch:

PC ADRMEM

200

ADRMEM

UMEM
M RI
PC PC + 4

1A002900
1A002900
204

RI7-18 ADRMEM

800

ADRMEM

M
M

800
ADRMEM

F00
F00

ADRMEM

M F00
M
A
RI21-32 ADRMEM

ABCDEF01
ABCDEF01
900

ADRMEM

M 900
M ADRMEM

E00
E00

ADRMEM

M
E00
ABCDEF01
M T
ABCDEF01
A compara cu T pozit lui Z=1
prm

2.5.

UNITATE CENTRAL CU MICROPROCESOR

Microprocesorul este o unitate central de prelucrare a datelor


(UCP), realizat ntr-un singur circuit integrat. Vom exemplifica o
arhitectur de microprocesor pe INTEL 8086, primul microprocesor pe 16
bii.

2.5.1. Schema general a unui microprocesor 8086


Microprocesorul 8086 are dou componente:
-Unitatea de execuie (UE);
-Unitatea de interfa cu bus urile (UI)

42

Sorin Adrian Ciureanu

Structura acestui microprocesor este de tip pipeline, adic este o


structur n band de asamblare cu dou segmente: UE i UI.
UE decodific instruciunile numerice, elaboreaz comenzi interne
pentru efectuarea calculelor i comenzi externe ctre cea de-a doua unitate.
UE conine 8 locaii de memorie intern numite registre de uz general.
UI calculeaz adresele de memorie i de intrare/ieire, transfer
datele ntre UE i memorie, ntre UE i I/E i transfer ctre UE codurile
numerice ale instruciunilor citite n memorie.
Cele dou segmente efectueaz autonom secvene de operaii proprii,
transferndu-i n acelai timp informaii. Secvenele de operaii efectuate de
cele dou uniti ale microprocesorului pentru a executa instruciunile se
numesc cicluri de instruciune, pentru UE i cicluri main de bus, pentru
UI.
a)Structura UE
UE are componentele:
-Unitatea aritmetic-logic (UAL), n englez Arithmetic-Logic
Unity (ALU), care execut operaii aritmetice i logice, deplasri i rotaii.
-Registrele temporare (RT), care preiau operanzii de pe bus-ul intern
i i ofer unitii UAL. mpreun cu UAL formeaz un automat.
-Registrul de flaguri, F, care conine indicatorii de stare ALU ai
ultimei operaii; registrul este actualizat de ctre ALU.
-Blocul de comand, care decodific codul instruciunii curente,
preluat din coada de ateptare Q, execut operaia i elaboreaz comenzi

externe AH
pentruALUI.
UE este complet separat de exterior, toate sarcinile privind
BH
BL
transferul
cu exteriorul
revenind UI-ului.
CH
CL
CS
DH

DL

DS
ES 20bii

DI
SJ
16 bii
8bii
8bii
BP
Ax
Bx

SS
IP

SP
Registre de
date

offset

Cx

Interfa
Bus-uri

Dx

Registre
temporare
Registre
de
adrese

ALU

Decodificare
operaie
Comand

Registru
flaguri

43

Arhitectura calculatoarelor

Bus intern

4bii
A16.-19
AD0-15
BD0-15
RT
BC

Coad de ateptare
Instruciuni (Q)
F

UE UI
Fig. 2.6. Arhitectura intern a microprocesorului 8086.
b)Structura UI
UI conine componentele date n continuare.
1)Blocul de interfa ntre bus-uri, care face transferurile UE.
Are urmtoarele cicluri:
-cicluri de scriere memorie sau I/E (UCMEM , I/E)
-cicluri de citire memorie sau I/E (UCMEM , I/E)
2)Coada de ateptare a codurilor de instruciuni (Q), care:
-este ncrcat de ctre UI cu coduri de instruciune, numai n
momentele de timp cnd UE nu are transferuri de date;
-este inactiv dac este plin sau se cer transferuri pe bus;
-este tears complet dac instruciunea este de salt.
3)Blocul de calcul al adreselor fizice, care include:
-registrele de segment ce conin componenta segment a adresei
locaiei de memorie accesat;
-registrul indicator al instruciunii curente (IP) cu componenta offset
a adresei instruciunii curente;

44

Sorin Adrian Ciureanu

-unitate de deplasare-adunare pentru calculul adresei fizice din


componentele segment i offset .

2.5.2. Registrele microprocesorului


Registrele microprocesorului 8086 au o capacitate de 16 bii i pot fi
clasificate n patru grupe, n funcie de rolul pe care l au n execuia
instruciunilor.
-Registre generale.
-Registre segment.
-Registru indicator al adresei instruciunii curente IP.
-Registru de flaguri, F, i registrul IP.
2.5.2.1. Registre generale
Registrele generale se mpart n dou seturi de registre:
-Registre de date: Ax,Bx,Cx,Dx.
-Registre de adresare: SP, BP, SI, DI.
a)Registre de date
Exist patru registre de date de 16 bii:
Ax-acumulator;
Bx-baza n adresarea datelor;
Cx-contor;
Dx-date.
Fiecare din aceste registre pot fi mprite n dou registre de 8 bii.
Registrele de date sunt utilizate n majoritatea instruciunilor aritmetice i
logice. Majoritatea instruciunilor aritmetice utilizeaz n acelai mod toate
registrele. Exist i instruciuni aritmetice pentru care anumite registre
generale au ntrebuinri speciale. De exemplu:
16 bii
Ax
Bx
Cx
Dx

8 bii
AH
BH
CH
DH

8 bii
AL
BL
CL
DL

Arhitectura calculatoarelor

45

Ax - operaii de intrare/ieire pe 16 bii, nmuliri i mpriri pe 16


bii;
AL - operaii de intrare/ieire pe 8 bii, translaii, aritmetice BCD,
nmuliri i mpriri pe 8 bii;
AH nmuliri i mpriri pe 8 bii;
Bx operaii cu memoria, adresare indirect, translaii;
Cx operaii cu iruri, bucle program;
CL operaii de deplasare sau rotaie cu mai mult de o poziie;
Dx operaii de intrare/ieire, adresare indirect, nmuliri i
mpriri pe 16 bii.
b)Registre de adresare
Sunt de dou tipuri:
1)Registre indicatoare de adres n stiv (pointer):
-SP (Stack Pointer), care conine adresa curent a vrfului stivei;
-BP (Base Pointer), care conine adresa baz pentru adresarea
indirect a stivei.
2)Registre indicatoare de adrese pentru iruri (index):
-DI(Destination Index)conine adresa curent pentru irul destinaie;
-SI (Source Index) conine adresa curent pentru irul sursei.
Registrele de adresare pot fi utilizate i pentru anumite instruciuni
aritmetico-logice.
Registrele pointer conin componente offset ale adreselor de stiv
(adresele relative n segmentul de stiv curent) .
Registrul BP poate fi utilizat i pentru adresarea n cadrul altor
segmente.
Registrele index conin componente offset ale adreselor variabilelor
(adrese relative n segmentul de date curent). Ele sunt utilizate ca registre de
adresare i instruciunile de transfer sau prelucrri de iruri de caractere. n
acest ultim caz registrul SI conine adresa relativ curent a irului destinaie
n cadrul segmentului de date curent (DS), iar DI conine adresa relativ
curent a irului surs n cadrul segmentului de date suplimentar (ES).
2.5.2.2. Registrele segment
Spaiul de memorie pe care poate s-l adreseze un microprocesor
8086 este mprit n segmente logice de lungime 64KO. Exist patru
registre segment:

46

Sorin Adrian Ciureanu

-CS (Cod Segment), care conine componenta segment a adreselor


codului (instruciunile programului);
-DS (Data Segment), care conine componenta segment a adreselor
variabilelor (segment date curent);
-ES (Extra Segment), care conine componenta segment a adreselor
variabilelor (segment suplimentar);
-SS (Stack Segment), care conine componenta segment a adreselor
datelor din segmentul stiv.
Instruciunea care urmeaz s fie executat se gsete n segmentul a
crui adres se afl n registrul CS, la adresa relativ coninut n IP.
Coninutul registrului DS definete segmentul de date curent. Toate
referirile la datele din memorie, cu excepia celor prin registrele BP i SP
sau registrul DI n instruciunile pentru iruri, utilizeaz n mod implicit
segmentul referit de DS.
Coninutul registrului ES definete segmentul de date suplimentar.
Referirile la date n instruciunile pentru iruri utilizeaz n mod implicit
segmentul referit de ES.
Coninutul registrului SS definete segmentul curent al stivei. Toate
referirile la datele din memorie prin registrele BP i SP utilizeaz n mod
implicit segmentul referit de registrul SS.
2.5.2.3. Registrele IP i F
Registrul indicator al adresei curente , IP (Instruction pointer), este
un registru de 16 bii care conine componenta ofset a adresei instruciunii n
segmentul de cod curent.
Programele nu au acces direct la IP, dar exist instruciuni care l
modific i l ncarc sau l descarc prin stiv.
Registrul de flaguri F cuprinde biii indicatori de stare i control,
numii i flaguri. Aceste flaguri sunt utilizate pentru a memora informaii
referitoare la rezultatul unor operaii aritmetice i logice (OF, SF, ZF, AF,
PF, CF) i pentru memorarea unor informaii de control al
microprocesorului (TF, DF, IF). Semnificaiile acestor flaguri sunt date n
continuare.
-CF (Carry Flag) reflect transportul n exterior al bitului cel mai
semnificativ al rezultatului operaiilor aritmetice.
CF=1 nseamn un transport la operaia de adunare.
CF mai este modificat la operaiile de rotaie i deplasare.
-PF (Parity Flag) este indicator de paritate;

Arhitectura calculatoarelor

47

PF = 1, dac rezultatul are paritate par.


de asemenea acest indicator este utilizat i de instruciunile de
aritmetic zecimal.
-AF (Auxiliary Cary Flag) este indicator de transport auxiliar.
AF = 1, dac a fost transport de la jumtatea de octet inferioar
la jumtatea de octet superioar; este utilizat la instruciunile de
aritmetic zecimal.
-ZF (Zero Flag) este indicatorul de zero.
ZF = 1, dac rezultatul operaiei a fost zero.
-SF (Sign Flag), indicatorul de semn:
SF = 1 dac cel mai semnificativ bit al rezultatului este 1,
adic, n reprezentarea numerelor n complement fa de
2, rezultatul este negativ.
-OF (Overflow Flag), indicatorul de depire aritmetic, a gamei de
valori posibil de reprezentat;
OF = 1, dac dimensiunea rezultatului depete capacitatea
locaiei memoriei.
-IF (Interrupt Flag), indicatorul de validare a ntreruperilor.
IF = 1, dac se pot valida ntreruperile externe mascabile
IF = 0, dac ntreruperile externe sunt invalidate.
De remarcat c acest flag nu afecteaz ntreruperile interne sau pe
cele externe nemascabile.
DF (Direction Flag) este utilizat de instruciunile pe iruri de
caractere i specific direcia de parcurgere a lor:
DF = 0 , parcurgere de la adrese mici spre adrese mari.
DF = 1 , parcurgere de la adrese mari spre adrese mici.
-TF (Trace Flag) este utilizat pentru controlul execuiei
instruciunilor n regim pas cu pas n scopul depnrii programelor; este1
dup ce execuia fiecrei instruciuni se va genera un semnal de ntreruperi
intern.

2.5.3. Adresarea memoriei. Segmentarea memoriei.


Intel 8086 poate adresa un spaiu de memorie din memoria
principal (MP) de 1 Moctet. Conform conveniei INTEL, datele formate
din mai muli octei sunt memorate cu octetul cel mai semnificativ la locaia

48

Sorin Adrian Ciureanu

de adres cea mai mare, adic octetul cel mai puin semnificativ este
memorat la adresa cea mai mic.
Intel 8086 vede memoria principal organizat ca un grup de
segmente. Un segment este un bloc de memorie de dimensiune 64 Koctei.
Fiecare segment poate fi accesat, n scriere sau n citire, n mod
independent.
Procesoarele pot lucra n dou moduri: modul real i modul protejat.
n modul real procesoarele adreseaz memoria principal printr-o
adres fizic direct.
n modul protejat, procesoarele adreseaz memoria principal ca pe
o memorie virtual. O adres virtual este, de fapt, un nume pentru o locaie
de memorie pe care procesorul o translateaz ntr-o adres fizic
corespunztoare. O adres virtual are dou componente: o adres de baz
(segment) i un deplasament (ofset). Notaia consacrat pentru adresa logic
este:
Segment : offset
Trecerea de la adresa logic la adresa fizic se face astfel:
Adresa logic adres fizic
Adres fizic = segment x 10(+) + offset
nmulirea cu zece a unui numr n . nseamn deplasarea spre
stnga cu o poziie. Exemple:
1) adresa logic ABC4 : EFB8
adresa fizic = ABC40 + EFB8 = BACF8
2) adresa logic AB00 : CD00
adresa fizic = AB000 + CD00 = B7D00
Aceast adres fizic este calculat n UI n funcie de modul de
adresare.
Structura pe segmente a memoriei face posibil scrierea unor
programe care sunt independente de poziia lor n memorie, adic sunt
realocabile dinamic. Pentru ca un program s fie realocabil trebuie s fie
scris astfel nct s nu altereze registrele sale segment i s nu fac
transferuri directe de la o locaie n afara segmentului de cod. Aceasta
permite programului s fie mutat oriunde n memoria disponibil, atta timp
ct registrele segment sunt actualizate cu noua adres de baz.

2.5.4. Formatul instruciunii


Instruciunile, codificate n binar, pot ocupa n memorie de la 1 la 6
octei. Codul instruciunii este format din:

49

Arhitectura calculatoarelor
-codul operaiei care ocup 1 sau 2 octei i care specific:
-tipul operaiei;
-tipul operanzilor (8 sau 16 bii);
-sursa operanzilor (intern sau extern);
-destinaia rezultatelor operaiilor ALU;
-modul de calcul al EA;
-operanzii de tip imediat: date i adrese.
1 2

COD
OPERAIE

D W

10

11

MOD

12

REG

13

14

15

16

OFFSET

R/M

Fig.2.7. Formatul instruciunii cu cod pe un octet.


Semnificaiile cmpurilor din figura 2.7. sunt date n continuare.
D destinaie. Specific direcia rezultatului n combinaie cu
cmpurile MOD i R/M.
W word. Specific tipul de transfer. W = 0 nseamn transfer pe un
octet iar W = 1, transfer pe 2 octei (1 cuvnt).
MOD este o codificare a modului de calcul al adresei efective sau
lungimea deplasamentului. Este utilizat pentru a determina adresa efectiv
mpreun cu cmpul r/m.
MOD = 1 1, cmpul r/m este un cmp de registru cu
urmtoarele semnificaii:
r/m
000
001
010
011
100
101
110
111

registru
(w=0)
(w=1)
cuvnt
octet
Ax
AL
Cx
CL
Dx
DL
Bx
BL
SP
AH
BP
CH
SI
DH
DI
BH

MOD = 00, cmpul deplasament nu este prezent


MOD = 01, cmpul deplasament are 8 bii (low)
MOD = 10, cmpul deplasament are 16 bii.
R/M conine:
-adresa unui registru (pentru MOD=11)
-o codificare utilizat pentru calculul adresei efective.
R/M Adresa efectiv

50

Sorin Adrian Ciureanu


000
001
010
011
100
101
110
111

BX + SI + deplasament
BX + DI + deplasament
BP + SI + deplasament
BP + DI + deplasament
SI + deplasament
DI + deplasament
BP + deplasament
BP + deplasament

Unitatea de execuie (UE) are acces la operanzii imediai i de


registre; cnd este nevoie de un operand de memorie, se transmite la UI
deplasamentul acestuia i registrul de segment IC determin adresa fizic a
operandului n funcie de modul de adresare.

2.5.5. Moduri de adresare


Exist, n principal, cinci moduri de adresare.
2.5.5.1. Adresare direct
Adresa efectiv (AE) a operandului
deplasamentul coninut n instruciune.

este

reprezentat

deplasament
MEMORIE
AE

AF

OPERAND

AS

Fig. 2.8 Adresare direct. AE, adres efectiv. AS, adres


segment. AF, adres fizic.
2.5.5.2.Adresare indirect prin registre

de

51

Arhitectura calculatoarelor

n cmpul calculat nu se afl operandul, ca la adresarea direct, ci o


alt adres de operand.
Cod operaie

Deplasament

BX

AE

Memorie

BP
SI

AF

OPERAND

DI
AS

Fig. 2.8. Adresare indirect prin registre.


Sintaxa instruciunilor n limbajul de asamblare utilizeaz pentru
adresarea indirect operatorul [ ]. De exemplu: mov ax, [bx], se
deplaseaz la adresa coninut de bx.
2.5.5.3.Adresare indexat
La calculul adresei particip i un registru index (SI sau DI n cazul
procesoarelor 8086). Adresa se obine din suma registrului index i
deplasamentul din instruciune.
7

07
COD OP

015
MOD R/M

DEPLASAMENT

SI
DI

AE
Memorie

AF

OPERAND

AS

Fig. 2.9. Adresare indexat


Acest mod de indexare este utilizat, n cele mai multe cazuri, pentru
referirea elementelor unui vector. Deplasamentul marcheaz nceputul

52

Sorin Adrian Ciureanu

vectorului iar registrul index selecteaz elementul prin poziia sa relativ n


cadrul vectorului. Deoarece toate elementele vectorului sunt de aceeai
lungime, prin operaii aritmetice elementare asupra registrului index se va
selecta orice element. De aceea se poate specifica un factor de scal
(1,2,3,4) pentru index, pentru a referi vectori cu componente de lungime
fix de 1,2,3,4 octei.
Memorie
Adresare efectiv

V[6 ]
V[5 ]

Deplasament

V[4 ]
V[3 ]
V[2 ]

V[1 ]
V[0 ]
Registru index

Fig. 2.10. Referirea vectorilor de lungime fix n adresarea


indexat.
2.5.5.4.Adresare imediat
n acest caz operandul se afl chiar n instruciune.
OPERAND

AE

Fig. 2.11. Adresare imediat.


2.5.5.5. Adresarea porturilor de intrare/ieire
Porturile de intrare/ieire se adreseaz unde se gsete aceeai adres
n instruciune, pe 8 bii, cu 256 de adrese.
COD OP

SI

AE surs

DI

AE destinaie

Arhitectura calculatoarelor

53

Fig. 2 11. Adresarea porturilor intrare/ieire

2.5.6. Procesoare 286


Fa de procesoarele 8086, procesoarele 286 au o serie de modificri
importante.
a)Se introduc dou moduri de lucru:
-modul KERNEL;
-modul USER.
n modul KERNEL, care este un mod protejat, se pot executa toate
instruciunile procesorului, inclusiv cele privilegiate. Este un mod specific
sistemului de operare. n modul USER nu toate instruciunile se pot executa.
Este un mod specific aplicaiilor utilizator.
b) Spectrul de adrese crete la 16MB, acest lucru realizndu-se prin
adugarea a patru linii de adrese. n acest fel numrul de linii de adrese este
14.
16 MB = 24.210 B = 214 B
nr. linii de adrese = log 2 214 = 14
c) Se mbuntete tehnica pipeline. n varianta 286, procesorul are
patru uniti funcionale:
-unitatea de interfa cu magistrala;
-unitatea de instruciuni;
-unitatea de execuie;
-unitatea de adresare.
Unitatea de interfa cu magistrala realizeaz toate operaiile de
transfer pe magistral, adic extragerea instruciunilor i citirea/scrierea
operanzilor. Instruciunile sunt citite n avans i sunt transferate ctre
unitatea de instruciuni.
Unitatea de instruciuni decodific instruciunile i le plaseaz ntr-o
coad de instruciuni decodificate.
Unitatea de execuie preia aceste instruciuni i le execut, n funcie
de codul fiecrei instruciuni.

54

Sorin Adrian Ciureanu

Unitatea de adresare calculeaz adresele de memorie n funcie de


diferitele moduri de adresare. Adresele de memorie sunt transmise ctre
unitatea de interfa cu magistrala pentru efectuarea transferurilor.

2.5.7. Procesoare 386


La aceste procesoare s-au introdus unele mbuntiri.
a) Arhitectura de baz este extins la 32 bii. Att magistrala ct i
registrele interne sunt de 32 bii.
b) Se poate adresa o memorie de 46 B, utilizndu-se n acest scop 32
linii de adres.
46 B = 22.230 B = 232 B
nr linii de adres = log 2 232 =32
Unitatea de segmentare

Unitatea de paginare

Unitate de execuie

Unitate de interfa

Unitate de
decodificare

Unitate de prencrcare a
instruciunilor

Fig. 2.12. Schema pipeline pentru procesorul 386.


c) S-a introdus mecanismul de paginare n microprocesor. Cipul
MMU (Memory Management Unity), care la 8086 i 286 era separat de
procesor, a fost plasat n interiorul microprocesorului.
d) Tehnica pipeline este mbuntit cu dou module: unitate de
paginare i unitatea de prencrcare a instruciunilor.

2.5.8. Procesoare 486


La procesoarele 486 s-au adus urmtoarele mbuntiri:
a) S-a nglobat n procesor aa numitul coprocesor matematic, pentru
calcului n virgul mobil.
b) S-a nglobat memorie cache de nivel 1, de 8kB i, de asemenea, o
unitate de management a memoriei Cache.

55

Arhitectura calculatoarelor

c) Structura pipeline a fost extins prin divizarea unitii de extragere


i execuie a instruciunilor n cinci nivele. Fiecare nivel poate s prelucreze
o alt instruciune, traversarea unui nivel fcndu-se ntr-o perioad de ceas.
d) Pentru raionalizarea consumului de energie s-a introdus un
mecanism de management ce permite comutarea procesorului n regim de
consum redus.
Unitate de segmentare

Procesor virgul
fix

Unitate de programare

Unitate
cache

Unitate
de interfa
cu
magistrala

Procesor virgul
mobil

Decodificare instruciuni

Prencrcare instruciuni

Fig. 2.13. Schema bloc a procesorului 486.

2.5.9. Procesoare PENTIUM


Familia de procesoare PENTIUM se bazeaz pe o arhitectur
pipeline superscalar, ceea ce nseamn c utilizeaz mai multe linii de
prelucrare pipeline autonome ce lucreaz n paralel.
La varianta de baz exist dou linii de asamblare (liniile U i V).
Versiunile mai noi au trei linii de asamblare.
Controlorul de ntreruperi APIC (Advanced Programable Interrupt
Controller) a fost inclus n structura microprocesorului.
n ceea ce privete lungimea cuvntului i a magistralelor, intern
procesorul a rmas pe 32 bii i magistrala principal extern are 64 bii.
Anumite magistrale interne, ns, au 128 sau chiar 256 bii.
S-a introdus un mecanism de protecie a salturilor care se bazeaz pe
memorarea ultimelor salturi efectuate n cadrul secvenei de program.

56

Sorin Adrian Ciureanu

Citirea n avans a instruciunilor i introducerea lor n linia de prelucrare se


face pe baza probabilitii de realizare a unor salturi.
2.5.9.1. Microarhitectura familiei de procesoare PENTIUM
Microarhitectura specific procesoarelor de tip PENTIUM PRO,
PENTIUM II i PENTIUM III conine trei uniti de tip pipeline care
comunic prin intermediul unui REZERVOR DE INSTRUCIUNI :

UNITATE DE
EXTRAGERE I
DECODIFICARE
INSTRCIUNI

UNITATE DE
DISPECERIZARE
I
EXECUIE

UNITATE
DE
RETRAGERE

REZERVOR
DE
INSTRUCIUNI

Fig. 2.14. Schema de principiu a arhitecturii PENTIUM.


-unitatea de extragere i decodificare a instruciunii care se ocup de
extragerea n avans a instruciunilor i transformarea lor n secvene de
microoperaii;
-unitatea de dispecerizare i execuie care selecteaz microoperaiile
ce pot fi executate i le distribuie pentru execuie;
-unitate de retragere care asambleaz rezultatele pariale n ordinea
prestabilit de program.
Aceast arhitectur se bazeaz pe execuia instruciunilor ntr-o
ordine dictat de disponibilitile datelor i a unitilor de execuie. n acest
sens unitatea de extragere i decodificare ca i unitatea de retragere sunt
uniti in order, adic uniti care respect ordinea de prelucrare a
instruciunilor prestabilit n program. Unitatea de dispecerizare i execuie
este o unitate aut of order care nu respect aceast ordine. Datorit unitii
de retragere, care reordoneaz rezultatele pariale pe baza ordinii iniiale, se
elimin multe din situaiile de blocare temporar a liniei de prelucrare
pipeline cauzate de ateptrile provocate de transferurile externe de date.

Arhitectura calculatoarelor

57

La procesoarele PENTIUM, odat cu apariia lui PENTIUM PRO, se


introduce conceptul de execuie dinamic. Aceasta este o combinaie de trei
tehnici:
-predicia salturilor;
-execuie speculativ;
-analiza fluxului de date.
Cele trei tehnici soluioneaz majoritatea situaiilor de blocare a
liniilor de prelucrare i procesorul poate s lucreze la capacitatea maxim de
3 instruciuni ntr-o perioad de tact. La aceasta mai contribuie i existena
mai multor uniti de execuie care lucreaz n paralel.
Aceast arhitectur elimin n mare parte neajunsurile unei
arhitecturi pipeline clasice prin evitarea situaiilor de ntrziere a liniei
pipeline. ntrzierea poate s survin din diverse cauze:
-linia este golit n urma unei instruciuni de salt;
-operanzii solicitai nu sunt disponibili;
-nu exist o unitate de execuie.
Prezena rezervorului de instruciuni ofer unitii de dispecerizare i
execuie o anumit perspectiv ce permite optimizarea ordinii de execuie a
instruciunilor astfel nct s se reduc timpii de ateptare.
2.5.9.2. Unitatea de extragere i decodificare a instruciunilor
Instruciunile se extrag din Cache-ul de instruciuni la nivelul 1(L1).
Adresarea instruciunilor se face cu ajutorul modului Next IP care folosete
n acest scop informaiile coninute n blocul de memorare a ultimelor
adrese de salt. Astfel vor fi extrase secvenele de instruciuni care au
probabilitatea cea mai mare de a fi executate n vectorul apropiat.
Pe fiecare perioad de tact se extrage cte o linie de memorare cache
de 32 bii. Se marcheaz nceputul fiecrei instruciuni, dup care extrasul
este transmis ctre cele trei module de decodificare independente. Exist
dou module de decodificare simple i unul pentru instruciunile complexe.
n urma procesului de decodificare, o instruciune este transformat
ntr-o secven de microoperaii triadice. O operaie triadic este o operaie
elementar care are maximum trei operanzi: doi operanzi surs i unul
rezultat.
Instruciunile simple se decodific n unu pn la patru
microoperaii.

58

Sorin Adrian Ciureanu

Instruciunile complexe sunt decodificate n secvene predefinite de


microoperaii pstrate n modulul de secveniere a microoperaiilor.
Decodificatorul poate genera pn la 6 microoperaii pe o perioad de tact.
Deoarece sunt utilizate un numr restrns de registre interne, pot s
apar dependene false ntre variabilele care utilizeaz temporar acelai
registru intern. Aceste dependene conduc la ntrzieri n linia de prelucrare
pipeline. Pentru a evita astfel de situaii, unitatea de decodificare aloc
microoperaiilor un registru alias dintr-un set de registre invizibile pentru
programator.
Registrele alias pot fi utilizate n operaii aritmetice i logice.
Fiecrei microoperaii i sunt ataai bii de stare, necesari n procesul de
execuie.
Microoperaiile sunt plasate n rezervorul de instruciuni, rezervor
care face legtura ntre cele trei uniti independente de prelucrare din
aceast arhitectur superscalar.

De la BIU
(Basic Interface Unit)

L1

I CACHE

NEXT IP

Bloc de memorie a
adresei de salt
DECODIFICARE
DE

Secvenator de
microinstruciuni

INSTRUCIUNI
Alocator de registre
alias

Spre rezervorul
de miscroinstruciuni

Fig. 2.15. Unitatea de extragere i decodificare a instruciunilor.

59

Arhitectura calculatoarelor

2.5.9.3. Unitate de dispecerizare i execuie


n Unitatea de dispecerizare i execuie exist diferite module:
UEI - unitate de execuie pentru numere ntregi;
UEF unitate de execuie pentru numere n virgula flotant;
UE-MMX unitate de execuie a operaiilor MMX;
UES unitate de execuie a salturilor;
UGA unitate de generare a adreselor pentru citirea operanzilor i
scrierea rezultatelor;
Staie de rezervare.
Staie de
rezervare

UEI

UEF

UEMMX

Port 1

UEI

UES

UEMMX

Port 2

UGA

Port 0

Rezervor
i
de
instruciuni

Port 3, 4

UGA

i Citire operanzi

Scriere operanzi

Fig.2.16. Unitate de dispecerizare i execuie.


Staia de rezervare extrage din rezervorul de instruciuni
microoperaii ale cror condiii de execuie sunt ndeplinite i le aloc n
funcie de specificul operaiei. O microoperaie este executabil dac
operanzii cu care lucreaz sunt disponibili i dac unitatea de execuie pe
care o solicit este liber. Pentru a determina disponibilitatea operanzilor se
folosete o metod de analiz a fluxului de date, n urma creia se genereaz
un graf al dependenelor de ordine existente ntre mai multe operaii care

60

Sorin Adrian Ciureanu

utilizeaz aceleai variabile. Dac mai multe microoperaii sunt simultan


disponibile, atunci se folosete un algoritm de planificare de tip FIFO care
favorizeaz execuia n secven a microoperaiilor.
Staia de rezervare dispune de 5 porturi prin care poate s comunice
cu unitile de execuie. Pot fi executate simultan maximum 5 microoperaii.
Sunt disponibile mai multe uniti de execuie care pot s lucreze n paralel:
-dou uniti pentru numere ntregi:
-o unitate pentru numere n virgul mobil;
-o unitate de execuie a salturilor;
-dou uniti pentru MMX;
-dou uniti pentru scrierea i citirea operanzilor.
Microoperaiile executate, mpreun cu rezultatele obinute, sunt
plasate din nou n rezervorul de instruciuni.
Pentru instruciunile de salt, se verific dac previziunea cu privire la
adresa de salt a fost corect. n caz contrar, unitile de execuie a salturilor
invalideaz toate operaiile care urmeaz dup instruciunea de salt, spre a fi
eliminate din rezervor.
2.5.9.4. Unitatea de retragere
D Cache

Staie de
rezervare

UIM (unitate de interfa cu memoria)

FER (Fiierul de registre de retragere)

Rezervor de
instruciuni

Fig. 2.17. Unitate de retragere.

Arhitectura calculatoarelor

61

Unitatea de retragere are rolul de a restabili ordinea iniial (aceea a


programului iniial) ntre rezultatele pariale generate n urma executrii
microoperaiilor. n acest scop se extrag din rezervorul de instruciuni
microoperaiile a cror execuie este terminat i care urmeaz n ordinea
secvenial de execuie.
Rezultatele pstrate n registrele alias sunt transferate n registrele
interne sau n memorie.
Unitatea de retragere poate extrage trei microoperaii ntr-o perioad
de tact.

2.6.

UNITATE CENTRAL DE TIP RISC


2.6.1. CISC versus RISC

Din punct de vedere al complexitii instruciunilor, procesoarele pot


fi de dou tipuri:
-CISC (Complex Intruction Set Computer);
-RISC (Reduced Instruction Set Computer).
Modelele CISC sunt caracterizate printr-un set foarte mare de
instruciuni cod main, prin formate de instruciuni de lungime variabil i
prin numeroase moduri de adresare foarte sofisticate. Desigur c aceast
complexitate arhitectural are repercursiuni negative asupra performanelor
computerului. Arhitecturile CISC au fost concepute ncepnd cu anii 1960,
pe baza datelor tehnologice din epoc . Atunci compilatoarele nu puteau
utiliza bine registrele, microinstruciunile se executau mai rapid dect
instruciunile (pentru c se situau n memorii cu semiconductori n timp ce
instruciunile se situau in memorii toroidale), memoria central era de
dimensiuni limitate etc.
Modelele RISC ncearc s corecteze neajunsurile modelelor CISC
i, de aceea, sunt caracterizate printr-o simplitate i eficien mrite. Ideea
de baz este utilizarea unui numr redus de instruciuni, cu mult mai mic
dect n modelele CISC, instruciuni care sunt cele mai frecvent utilizate i
care confer o mai mare flexibilitate n funcionare.
Primele
microprocesoare RISC au fost proiectate la Universitile de Stanford
(coordonator profesorul John Hennessy) i Berkeley
(cooordonator
profesorul John Patterson, cel care a i propus denumirea de RISC), n 1981.
Caracteristicile de baz ale modelului RISC sunt urmtoarele:
-timp de proiectare i erori de construcie mai reduse dect la CISC;

62

Sorin Adrian Ciureanu

-unitate de comand hardware cablat, fr microprogramare, ceea


ce mrete rata de execuie a instruciunilor;
-utilizarea tehnicilor de procesare pipeline;
-utilizarea instruciunilor LOAD/STORE cu referire la memorie,
ceea ce nseamn c nu mai exist instruciuni cu operanzi n memorie ci
numai n registrele generale;
-exist un format fix al instruciunilor, codificate pe un singur cuvnt
de 32 bii sau, mai recent, pe 64 bii;
-datorit unor particulariti ale procesrii pipeline i anume datorit,
mai ales, hazardurilor pe care aceasta le implic, apare necesitatea unor
compilatoare optimizate (schedulere), cu rolul de a reorganiza programul
surs pentru a putea fi procesat optimal din punct de vedere al timpului de
execuie;
-numrul de registre generale este substanial mai mare dect la
arhitectura CISC, deoarece la arhitectura RISC se lucreaz cu ferestre
(register WINDOWS); numrul mare de registre generale este util i pentru
mrimea spaiului intern de procesare, tratarea optimizat a evenimentelor
de excepie i modelul ortogonal de programare.
Microprocesoarele RISC scalare reprezint modele cu adevrat
evolutive n istoria tehnicii de calcul. Primul articol despre modelele RISC ,
semnat de David Petterson i Carlo Sequin, a aprut n 1981, i numai peste
6-7 ani toate marile firme productoare de hardware realizau
microprocesoare RISC scalare, n scopuri comerciale sau de cercetare.
Performana acestor microprocesoare crete cu 75% n fiecare an.

2.6.2. Setul de instruciuni


n proiectarea setului de instruciuni aferent unui microprocesor
RISC intervine o multitudine de consideraii:
-compatibilitatea cu seturile de instruciuni ale altor tipuri de
procesoare pe care s-au dezvoltat produse soft consacrate; portabilitatea
acestor produse pe noile procesoare este condiionat de aceast cerin
care, n general, vine n contradicie cu cerinele de performan a
sistemului;
-setul de instruciuni este n strns dependen de tehnologia
folosit care, de obicei, limiteaz sever performanele (constrngeri legate
de aria de integrare, cerine specifice tehnologiei etc);
-minimizarea complexitii unitii de comand i a fluxului de
informaie procesor-memorie;

Arhitectura calculatoarelor

63

-n cazul multor procesoare RISC setul de instruciuni este ales ca


suport pentru implementarea unor limbaje de nivel nalt.
Setul de instruciuni din procesoarelor RISC este caracterizat prin
simplitatea formatului precum i de un numr limitat de moduri de adresare.
De asemenea se urmrete ortogonalizarea setului de instruciuni.
n primul procesor RISC 1 BERKELEY exista un set de 31
instruciuni grupate n patru categorii:
-aritmetice/logice;
-acces la memorie;
-salt/apel subrutine
-instruciuni speciale.
Formatul unei astfel de instruciuni este dat n figura 2.18.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
OP
S
DEST
SOURCE 1
I
SOURCE 2
CODE
C
M
C
M

Fig.2.18. Formatul instruciunii Berkley RISC 1.


IMM = 0 cei mai puini semnificativi 5 bii ai cmpului SOURCE 2
codific al doilea registru operand ;
IMM =1 SOURCE 2 semnific o constant pe 13 bii cu extensie
semn pe 32 bii;
SCC (Store Condition Code) semnific validare/invalidare a
activitilor de condiie, corespunztor operaiilor
aritmetice/logice executate.
Cu toate c setul su de instruciuni este redus, procesorul Berkley
RISC 1 poate sintetiza o multitudine de instruciuni aparent inexistente.
Practic nu se pierd instruciuni ci doar opcode-uri. Dar prin aceasta se
simplific foarte mult logica de decodificare i unitatea de comand.
Iat mai jos cteva exemple de instruciuni emulate de RISC 1 n
comparaie cu un calculator CISC, VAX 11/780:
Instruciunea
Incrementare
Decrementare
ncrcare contor
Complement fa de 1

VAX11/780
INC Ri
DEC Ri
MOVL, #N, Ri
MCOMPL Ri , Rj

RISC 1
ADD Ri, 1, Ri
SUB Ri , 1, Ri
ADD R0, #N, Ri
XOR Ri , 1, Rj

64

Sorin Adrian Ciureanu

2.6.3. Principiul de procesare pipeline


ntr-un procesor RISC
Procesarea pipeline a instruciunilor reprezint o tehnic prin
intermediul creia fazele aferente multiplelor instruciuni sunt suprapuse n
timp. Arhitectura RISC este mai bine adaptat la procesarea pipeline dect
cea CISC, datorit lungimii fixe a instruciunilor, modurilor de adresare
specifice, structurii interne bazate pe registre generale .a. n general, exist
4-6 niveluri. Iat un exemplu cu 5 niveluri:
1. Nivelul IF (Instruction fetch)
Este ciclul de ncrcare a instruciunii, care const n calculul adresei
instruciunii ce trebuie ncrcat din cache sau memorie i din aducerea
efectiv a instruciunii din cache sau memorie n procesor.
2. RD (ID=Instruction Decodificatio))
Se decodific instruciunea adus i se citesc operanzii din setul de
registre generale.
3. Nivelul ALU (A
Se execut operaia ALU asupra operanzilor selectai, n cazul
instruciunilor aritmetice/logice. Se calculeaz adresa la memoria de date
pentru instruciunile LOAD/STORE.
4. Nivelul MEM
Este nivelul n care se face acces la memoria principal sau CACHE,
dar numai pentru instruciuni LOAD/STORE.
n cazul citirii, apar probleme datorate neconcordanei ntre rata de
procesare i timpul de acces la memoria principal. Rezult, teoretic, c ntrun sistem pipeline cu N niveluri, memoria trebuie s fie de N ori mai rapid
dect ntr-un sistem clasic. Acest lucru se realizeaz, de obicei, prin
implementarea de memorii rapide, n special CACHE.
La scriere, aceast problem nu apare, datorit procesorului de ieire
specializat (DWB), ce va fi studiat la memoria CACHE.
5. Nivelul WB (write buffer)
Se scrie rezultatul n registrul destinaie din setul de registre generale
al microprocesorului.
IF

RD

ALU

MEM

WB

IF

RD

ALU

MEM

WB

IF

RD

ALU

MEM

WB

IF

RD

ALU

MEM

WB

IF

RD

ALU

MEM

WB

Un
ciclu
mai
n

IF

RD

ALU

MEM

Sensul fluxului de date

WB

65

Arhitectura calculatoarelor

Fig 2.19. Principiul procesrii pipeline ntr-un procesor RISC.


Prin procesarea pipeline se urmrete o rat ideal de o instruciune
pe ciclu main, ca n figura 2.19., dei, dup cum se observ, timpul de
execuie pentru o instruciune dat nu se reduce.
Se observ necesitatea suprapunerii a dou nivele concureniale:
nivelul IF i respectiv MEM, ambele cu referire la memorie. Deseori aceast
situaie se rezolv prin legturi (busuri) separate ntre procesor i memoria
de date respectiv de instruciuni .
O deficien important a acestor microprocesoare este c nu orice
instruciune trece prin cele 5 nivele de procesare. De exemplu prin nivelul
MEM trec doar instruciunile LOAD/STORE . Corectarea acestui neajuns se
face, uneori, prin comprimarea a dou niveluri.

2.6.4. Structura unui Procesor RISC


Structura hardware a unui procesor RISC, prezentat n continuare,
permite procesarea pipeline a instruciunilor.
Adres de salt
mux
2:1
ID/EX
/
32
sum
1

PC

Adr
MEM
I

5
/
/
5

S1
S2 SET
REG
D

/
32
/
32

D IN

.
S1+S2
/
19
S2
/
13

Ext.
semn
mux
2:1

/
32

sum
2

EX/MEM

MEM/WB

mux 2:1

IF/ID

ALU

mux 2:1

adr
M
E
M
D
D
in

66

Sorin Adrian Ciureanu

DEST

CLK
Adr. Reg, DEST.
Data in reg.

Fig.2,20. Schema de principiu a unui procesor RISC.


Interconectarea nivelurilor (IF/ID , ID/EX, EX/MEM; MEM/WB)
sunt implementate sub forma unor registre de ncrcare, actualizate sincron
cu fiecare ciclu de procesare. Memorarea anumitor informaii de la un nivel
la altul este absolut necesar, pentru ca informaiile coninute n formatul
instruciunii curente s nu se piard prin suprapunerea fazelor de procesare.
Cmpul DEST este memorat succesiv din nivel n nivel i este
rebuclat la intrarea setului de registre generale. Utilitatea acestui cmp
devine oportun abia n faza WB, cnd i data de nscris n setul de registre
generale devine disponibil (cazul instruciunilor aritmetice/logice sau
STORE)
Multiplexorul de la intrarea ALU are rolul de a genera registrul surs
2, n cazul instruciunilor aritmetice/logice, indexul de calcul adres
(constanta pe 13 bii cu extensie semn), n cazul instruciunilor
LOAD/STORE sumatorul sum 2 calculeaz adresa de salt n cazul
instruciunilor salt (branch) dup formula
PCnext=PC+Ext.semn(IR18-=0
Multiplexorul 2:1 de la ieirea nivelului MEM/WB multiplexeaz
rezultatul de ALU n cazul unei instruciuni aritmetice/logice, respectiv data
citit din memoria de date n cazul unei instruciuni LOAD. Ieirea acestui
multiplexor se va nscrie n registrul destinaie codificat de instruciune.
Evident, ntreaga structur este comandat de o unitate de control.

2.6.5. Problema hazardurilor n procesoarele RISC


Hazardurile sunt situaiile care pot aprea n procesarea pipeline i
care determin blocarea procesrii, avnd o influen negativ asupra ratei
de execuie a instruciunilor. Debitul ideal de o instruciune pe ciclu n
pipeline nu poate fi obinut dect dac instruciunile sunt esenial
independente; atunci ele se pot executa simultan. Cnd semantica lor este n

67

Arhitectura calculatoarelor

mod real secvenial, pipeline-ul este penalizat. Exist trei categorii de


hazarduri:
-structurale;
-de date;
-de ramificaie.
2.6.5.1. Hazarduri structurale
Aceste hazarduri sunt determinate de conflictele la resurse comune,
adic atunci cnd mai multe procese simultane, aferente mai multor
instruciuni n curs de procesare, acceseaz o resurs comun.
Pentru a le elimina prin hardware, este nevoie ca numrul de resurse
s fie mrit. Prin multiplicarea resurselor hardware s-a creat posibilitatea
execuiei mai multor operaii, fr a avea conflicte la resurse.
2.6.5.2. Hazarduri de date
Aceste hazarduri apar cnd o instruciune depinde de rezultatele
unei instruciuni anterioare n banda de asamblare. Exist trei categorii de
hazarduri de date, funcie de ordinea acceselor de citire respectiv scriere, n
cadrul instruciunilor:
-hazardul RAW (Read After Write);
-hazardul WAR (Write After Read);
-hazardul WAW (Write After Write).
a) Hazardul RAW
Apare atunci cnd instruciunea 2 ncearc s citeasc o surs nainte
ca instruciunea 1 s o scrie n surs. Este foarte frecvent n actualele
procesoare pipeline. De exemplu:
Dat disponibil

I1 LOAD R1 Memorie
I2

LOAD R1+R2R2
.

IF

RD

ALU

MEM
MI

WB

IF

RD

MEM

ALU

WB

Dat necesar

n acest caz, R1 fiind sursa, data ce urmeaz a fi ncrcat n R 1 este


disponibil abia la sfritul ciclului MEM aferent instruciunii I 1 , prea

68

Sorin Adrian Ciureanu

trziu, deoarece pentru procesarea corect a lui I 2 ar fi nevoie ca data s fie


disponibil cel trziu la nceputul nivelului ALU din I 2 . Ar fi necesar ca I 2
s fie stagnat cu un ciclu main. Se cunosc mai multe metode pentru a
prentmpina hazardul RAW.
-Prin nscrierea unei instruciuni NOP (metod software) se
stagneaz a doua instruciune; timpul nu mai este critic. n exemplul ales,
programul devine:
I1
NOP
I2
-Prin tehnica scoreboarding (metod hardware), se stagneaz
hardware a doua instruciune, stagnare determinat de detecia hazardului
RAW de ctre unitatea de control. Aceast tehnic de ntrziere a fost
propus de Saymour Cray n 1964. Se impune ca fiecare registru al
procesorului s aib un bit de scor asociat:
bit de scor =0 registru disponibil
bit de scor =1 registru ocupat
Dac pe un anumit nivel al procesrii este necesar accesul la un
anumit registru avnd bitul de scor 1, respectivul nivel va fi ntrziat,
permindu-i-se accesul numai cnd bitul respectiv a fost ters de ctre
procesul care l-a setat.
Pentru exemplul anterior, se arat n figura 2.21 cum se testeaz i se
seteaz bitul de scor i n figura 2.22 cum se face resetarea procesrii
instruciunilor.
De remarcat c ambele soluii bazate pe stagnarea fluxului de
instruciuni (NOP i score boarding) scad performanele.
I1 LOAD R1 MEM
!F

RD

ALU

MEM

WB

R1

R2

R3

Rn

Fig.2.21. Detecia hazardului pe baza bitului de scor.


resetare
.
I1 LOAD R1 memorie
!F

RD

ALU

MEM

WB

I2 ADD R1 + R2 R1
!F

DELAY

RD

ALU

MEM

Restartare procesare

R1

R2

R3

Rn

WB

69

Arhitectura calculatoarelor

Fig. 2.22. Restartarea procesrii instruciunilor.


-Prin tehnica forwarding (bypassing), n anumite situaii, hazardul
RAW se rezolv fr s se cauzeze stagnri ale fluxului de procesare.
Aceast tehnic se bazeaz pe pasarea anticipat a rezultatului
instruciunii. Fie urmtoarea secven:
ADD R1 R2 R3
R2 + R 3 = R 1
SUB R4 R1 R5
R1 R5 = R 4
ADD

!F

RD

ALU

MEM

WB

pt. R1

R2
R3

SUB

pt. R4
!F

RD

ALU

MEM

WB

Rezultatul ALU aferent primei instruciuni R2 + R3 este


memorat n tampoanele ALU la finele fazei ALU a instruciunii ADD. Dac
unitatea de control va detecta hazardul RAW , va selecta pe parcursul fazei
ALU aferente instruciunii SUB, la intrarea A din ALU, tamponul care
conine R2+R3 ( n urma fazei ALU a instruciunii ADD), evitnd astfel
hazardul RAW.
Este necesar implementarea proceselor de forwarding nu numai de
la ieirile ALU spre intrri ci i din nivelele urmtoare (de exemplu MEM)
spre intrrile ALU. Aceast situaie corespunde unor instruciuni dependente
RAW dar nesuccesive strict n program. Valoarea pasat uneia din intrrile
din ALU, n acest caz, reprezint rezultatul ALU memorat n nivelul

70

Sorin Adrian Ciureanu

urmtor (MEM) pentru instruciunile aritmetice/logice sau data citit n


memoria CACHE de date pentru unele instruciuni LOAD.
n implementarea controlului mecanismului de forwarding, pot
aprea situaii conflictuale care trebuie rezolvate pe baze de arbitrarepriorizare.
Se consider secvena de instruciuni:
I1 SUB R2 R1 R3
I2 AND R2 R2 R5
I3 ADD R6 R2 R4
n acest exemplu apar necesare dou pasri anticipate de valori, de
la I1 la I3 (R3) pe intrarea A de la ALU i respectiv de la I 2 la I3 (R2) pe
aceeai intrare A de la ALU. Trebuie acordat prioritate nivelului pipeline
mai apropiat de ALU, informaiei produs de ieirile ALU i nu celei situate
n nivelul urmtor (aici MEM). Se preia pe intrarea A a unitii ALU
rezultatul produs de I2 i nu cel produs de I1 . Rezult deci c i astfel de
poteniale situaii conflictuale trebuie implementate n logica de control a
mecanismelor forwarding.
READ
REGISTRU 2

WRITE
REGISTRU

SET REGISTRI GENERALI


DATA IN

READ
REGISTRU 1
DATA AUT 1

DATA AUT 2

MUX 2:1

R5

B
ALU

DIF

SUM

TAMPOANE ALU
R2 + R3

Arhitectura calculatoarelor

71

Fig. 2 23. Implementarea forwardingului.


b) Hazardul WAR
Apare atunci cnd o instruciune scrie o destinaie nainte ca aceasta
s fie citit pe post de surs de ctre o instruciune anterioar. Poate avea loc
dac ntr-o structur pipeline exist o faz de citire posterioar unei faze de
scriere. De exemplu, modurile de adresare indirect cu predecrementare pot
introduce acest hazard i de aceea nici nu sunt implementate n
calculatoarele RISC.
Aceste hazarduri de tip WAR mai pot aprea i datorit execuiei
instruciunilor n afara ordinii lor normale din program, n aa numita
execuie Out of Order. Aceast procesare este impus de necesitatea
creterii performanei i se poate realiza att prin mijloace hardware ct i
software.
c)Hazardul WAW
Apare atunci cnd o instruciune scrie un operand nainte ca acesta s
fie scris de o instruciune anterioar, scrierile fiind fcute ntr-o ordine
eronat.
Hazardul WAW poate aprea n structurile care au mai multe niveluri
de scriere sau care permit unei instruciuni s fie procesat chiar dac o
instruciune anterioar este blocat.
Modul de adresare indirect cu postincrementare poate introduce
acest hazard, fapt pentru care acest mod de adresare nu este implementat n
maina RISC. De asemenea, hazardul WAW poate aprea n cazul execuiei
Out of Order a instruciunilor cu aceeai destinaie.
Hazardurile WAW, ca i cele WAR de altfel, nu reprezint hazarduri
reale, ci mai degrab conflicte de nume. Ele pot fi eliminate de ctre
compilator (scheduler) prin redenumirea resurselor utilizate de program. De
aceea se mai numesc autodependente, cele WAW, i dependente de ieire
cele WAR.
Exemple:

72

Sorin Adrian Ciureanu

I1
MULF Ri Rj Rk
Rj * Rk Rj
I2
ADD Rj Rp Rm
Rp+Rm Rj
n acest caz poate s apar hazard WAR deoarece instruciunea I1
fiind o instruciune de coprocesor (cu virgul mobil) se va ncheia n
execuie dup I2 care este o instruciune de procesor (cu operanzi ntregi)
Pentru c numrul de niveluri aferent structurii pipeline a coprocesorului
este mai mare dect numrul de nivele aferent procesorului, instruciunile
I1 i I2 se termin Out of Order (I2 naintea lui I1). Secvena care elimin
hazardul WAR, reorganizat prin software este:
MULF
Ri Rj Rk
ADD
Rx Rp Rm
MOV
Rj Rx
Graful dependenelor de date
Mai jos este dat un exemplu de reorganizare a unui program n
vederea eliminrii hazardurilor de date i a realizrii procesrii optimale,
folosind graful dependenelor de date.
I0
I1
I2
I3
I4
I5

I
0

ADD
LD
ADD
ADD
LD
LD

R3

R3
R9
R4
R5
R4
R2

R1 R2
A(R7)
R3 R2
R4 R6
A(R6)
A(R4)

R4

R4
IR4

I
3

Fig. 2. 24. Graful dependenelor de date


aferent secvenei de instruciuni din exemplul ales

Arhitectura calculatoarelor

73

O prim secven de reorganizare a programului ar fi


I0
I1
I4
I2
I3

ADD
LD
LD
ADD
ADD

R3
R9
R4
R4
R5

R1 R2
A(R7)
A(R6)
R3 R2
R4 R6

Se observ c n aceast reorganizare execuia Out of Order a


instruciunilor I4 i I2 determin o procesare eronat a programului; apare
hazardul de tip WAW prin R4 .De asemenea, ntre I3 i I4 exist hazard WAR
prin acelai registru. Aadar detecia hazardului WAW ntre instruciunile I2
i I4 determin impunerea unei relaii de preceden intre aceste instruciuni,
adic procesarea lor trebuie s se realizeze n ordinea din program (in
order). Este necesar ca I3 , dependent RAW de I2 , s se execute naintea
instruciunii I4 . Aceste restricii au fost evideniate prin linii punctate n
graful dependenelor de date.. n aceste condiii secvena reorganizat corect
este:
I0
I1
I2
I3
I4

ADD
LD
ADD
ADD
LD

R3
R9
R4
R5
R4

R1 R2
A(R7)
R3 R2
R4 R6
A(R6)

NOP
I5
LD R2 A(R4)
Hazardul WAR ntre I3 i I4 ar putea fi eliminat prin redenumirea
registrului R4 n instruciunea I4 . deoarece hazardurile WAR i WAW nu
reprezint conflicte reale ci doar conflicte de nume. Considernd un
procesor cu mai multe registre fizice dect logice, precedenele impuse de
aceste hazarduri pot fi eliminate uor prin redenumirea registrelor logici cu
cei fizici. Principiul const n existena unei liste a registrelor active, adic
folosite momentan, i o alt list cu registrele libere. Fiecare schimbare a
coninutului unui registru logic
prin program se va face asupra unui
registru fizic disponibil n lista registrelor libere registru care va fi trecut n
lista registrelor active. In acest caz secvena se va rescrie astfel:
I0
ADD R3a R1a R2a
I1
LD R9a A(R7a)
I2
ADD R4a R3a R2a

74

Sorin Adrian Ciureanu


ADD R5a R4a R6a
LD R4b A(R6a)
LD R2b A(R4b)

I3
I4
I5

n acest caz n optimizare nu ar mai avea importan dect


dependenele RAW, celelalte fiind eliminate. n baza grafului dependenelor
de date, procesarea optim ar nsemna, n exemplul ales, secvena:
I0 I1 I4 I2 I3 I5
2.6.5.3. Hazarduri de ramificaie
Instruciunile care modific execuia secvenial a instruciunilor
sunt salturile, ramificaiile i apelurile de procedur.
Hazardurile de ramificaie cauzeaz pierderi de performan mult
mai importante dect hazardurile de date.
Diverse statistici arat c instruciunile de salt necondiionat au o
frecven de 2-8% din instruciunile unui program, iar cele de salt
condiionat 11-17%. De asemenea salturile condiionate simple au o
probabilitate de apariie de 50% iar buclele de 90%.
n principiu, efectele defavorabile ale instruciunilor de salt sau
ramificaie (Branch) pot fi reduse prin:
.metode soft, care reorganizeaz programul surs;
-metode hard, n care se determin n avans dac saltul se va face
sau nu i se calculeaz n avans noul Program Counter,
O prim soluie pentru o procesare corect ar fi aceea de a dezvolta
unitatea de control hardware n vederea detectrii prezenei saltului i de a
ntrzia procesarea instruciunilor urmtoare cu un numr de cicluri egal cu
latena BDS - ului, pn cnd adresa ar fi disponibil. Soluia implic, ns,
reducerea performanelor. Acelai efect l-ar avea i umplerea BDS-ului de
ctre scheduler cu instruciuni NOP. Efectul defavorabil al unei instruciuni
de salt este sugerat n fig.2.24. pentru o structur pipeline cu 5 nivele n care
la finele nivelului RD adresa se salt este disponibil. Evident c n alte
structuri Branch Delay Slot (BDS) poate fi mai mare dect un ciclu.
BRANCH:

I1

IF

RD

ALU

MEM

WB

IF

RD

ALU

MEM

WB

IF

RD

ALU

MEM

I2

1 ciclu

WB

Branch delay slot (BDS)= 1

Dac saltul se va face, I1 se va executa n mod nedorit

75

Arhitectura calculatoarelor

Fig. 2.25. Hazardul de ramificaie pe un procesor scalar.


n principiu, efectele defavorabile ale instruciunilor de ramificaie
(branch) pot fi reduse prin:
-metode soft, care reorganizeaz programul surs;
-metode hard, n care se determin n avans dac saltul se va face sau
nu i calculeaz n avans noul Program Counter.
a) Metode soft. Metoda Gross Hennesy (1982).
Se definete o instruciune de salt situat la adresa b spre o
instruciune aflat la adresa a ca un salt ntrziat de ordinul n dac, atunci
cnd se face saltul, sunt executate instruciunile situate la adresele b, b+1,
b+2,b+n i a .
O prim soluie de optimizare ar fi mutarea instruciunii de salt cu n
instruciuni mai sus. Acest lucru este posibil doar cnd nici una dintre
precedentele instruciuni nu afecteaz condiiile de salt. Atunci se poate
muta instruciunea de salt cu k instruciuni mai n sus, unde k reprezint
numrul maxim de instruciuni anterioare care nu afecteaz condiiile de
salt. Se duplic primele (n-k) instruciuni, plasate ncepnd de la adresa de
destinaie a saltului, imediat dup instruciunea de salt. Se modific
corespunztor adresa de salt, la acea adres care urmeaz imediat dup cele
(n-k) instruciuni originale (figura 2.26)
n cazul n care saltul necondiionat nu se execut, este necesar ca
nici una dintre cele (n-k) instruciuni adiionale s nu afecteze execuia
urmtoarelor (1+n-k) instruciuni.
BRANCH (cond), ADR
k

BRANCH (cond), ADR M

I instr.
ADR 1

ADR

(n-k) instr.

(n-k) instr.
adiionale
I instr.

ADR 2

ADR M

(n-k) instr.
originale
ADR M=ADR+
1+2(n-k)

76

Sorin Adrian Ciureanu

Fig. 2.26. Soluionarea unui hazard de ramificaie prin duplicarea


instruciunilor.
b)Metode hardware. Predicii prin hardware
Cele mai performante strategii actuale de gestionare a ramificaiilor
de program sunt prediciile hardware. Au la baz un proces de predicie
run-time a ramurii de salt condiionat precum i determinarea n avans a
noului Program Counter (PC).
Notnd cu BP (Branch Penalty) numrul mediu de cicluri de
ateptare pentru fiecare instruciune din program, introduse de salturile fals
predicionate, se poate scrie relaia:
BP=C(1-Ap)b IR , unde:
C = numrul de cicluri de penalizare introdui de un salt prost predicionat
Ap = acurateea prediciei
p= procentele de instruciuni de salt instruciunile procesate n program
IR = rata medie de lansare n execuie a instruciunilor.
Se observ c BP(Ap=0)=CbIR iar BP(Ap=1)=0, predicia ideal. Impunnd
BP=0.1 i considernd valorile tipice C=5, IR=4, b=22,5 %=0,225 rezult
Ap =0,977=97,7%. Este necesar o predicie aproape perfect pentru a nu se
simi efectul defavorabil al ramificaiilor de program asupra performanelor
procesoarelor.
O metod consacrat n acest sens este metoda Branch Prediction
Buffer (BPB), Tmpon de Predicie a Ramificaiei. BPB reprezint o mic
memorie adresat cu cei mai puin semnificativ bii ai PC - ului aferent unei
instruciuni de salt condiionat. Cuvntul BPB este constituit n principiu
dintr-un singur bit. Dac acesta este 1 logic, se prezice c saltul se va face
iar dac este 0 logic, se prezice c saltul nu se va face. Evident c nu se
poate ti n avans dac predicia este corect. Oricum structura va considera
predicia corect i va declana aducerea instruciunii urmtoare pe ramura
prezis. Dac predicia se dovedete a fi fost fals, structura pipeline se
evacueaz i se iniiaz procesarea celeilalte ramuri de program. Totodat
valoarea bitului de predicie din BPB se inverseaz.

Arhitectura calculatoarelor

77

START:

(C-1)

NU

DA
C=
0

Fig. 2.27. O bucl tipic.


BPB cu un singur bit are un dezavantaj care se manifest cu
precdere n cazul buclelor de program ca cea din figura 2.27., n care saltul
se va face de (N-1) ori; o dat, la ieirea din bucl nu se va face. n acest
caz, vom avea dou predicii false: una la intrarea n bucl (prima
parcurgere) i alta la ieirea din bucl (ultima parcurgere a buclei).
Acurateea prediciei va fi de (N-2).100/N% iar saltul se va face n proporie
de (N-1).100/N%. Pentru a elimina acest dezavantaj se utilizeaz 2 bii de
predicie modificabili conform graficului de tranziie de mai jos (numrtor
saturat). n acest caz acurateea prediciei unei bucle care se face de (N-1)
ori va fi (N-1).100/N%. Prin urmare, n cazul n care se prezice c
ramificaia va avea loc, aducerea noii instruciuni se face de ndat ce
coninutul noului PC este cunoscut. n cazul unei predicii incorecte, se
evacueaz structura pipeline i se atac cealalt ramur a instruciunii de
salt. Totodat biii de predicie se modific n conformitate cu graful din
figura 2.28.
DA

Prezice DA
00

NU
DA

Prezice NU
11

Prezice DA
01

Prezice NU
10

78

Sorin Adrian Ciureanu


DA

NU

NU

NU

DA
Fig. 2.28. Automat de predicie de tip numrtor saturat pe 2 bii.

2.7. PROCESOARE SUPERSCALARE


2.7.1. Principiul arhitecturii superscalare
O mbuntire mult urmrit n funcionarea procesoarelor este
aceea de a se atinge o rat medie de procesare a mai multor instruciuni pe
tact (ciclu). Principiul pipeline este executarea simultan a diferitelor faze a
unei instruciuni. Debitul n instruciuni pe ciclu este cel mult 1. Timpul de
ciclu este determinat de durata comun a fiecrui etaj, fixat de timpul de
traversare a celui mai lung circuit combinatoriu. Performana arhitecturii
este deci limitat de tehnologia circuitelor. Pentru a obine un debit superior
unei instruciuni pe ciclu trebuie s se modifice arhitectura.
Dou soluii sunt posibile: arhitectur superpipeline i arhitectur
superscalar.
O arhitectur superpipeline fracioneaz fiecare etaj al pipeline-ului,
deci i mrete numrul de etaje . Aceast tehnic, larg utilizat, are limite
tehnologice. Chiar dac este posibil s se pipelineze UAL, spre exemplu 2
cicluri, evoluia circuitelor tinde s diminueze proporional mai mult timpii
de propagare n interiorul UAL dect cei legai de registre. Necesitatea
introducerii unei tamponri tinde s anuleze ctigul unei prea fine
superpipeline.
O arhitectur superscalar const, n principiu, n executarea
simultan a mai multor instruciuni prin crearea de pipeline n blocurile de
instruciuni (figura 2.27). Debitul unei arhitecturi superscalare de gradul n
(blocuri de n instruciuni) este de n instruciuni pe ciclu, timpul de ciclu
rmnnd limitat de tehnologie. Tipic , n 1999, gradul de superscalar era de
4 sau 8.

79

Arhitectura calculatoarelor
ID
Lect ID
4
ID
instr. ID

EX
EX
EX
EX
ID
Lect ID
4
ID
instr. ID

MEM
MEM
MEM
MEM
EX
EX
EX
EX

RR
RR
RR
RR
MEM
MEM
MEM
MEM

RR
RR
RR
RR

Fig. 2. 29. Execuie superscalar de gradul 4.


Eficacitatea arhitecturii superscalare depinde de hardul necesar
execuiei simultane a n instruciuni i de softul care trebuie s asigure
independena celor n instruciuni ce se execut simultan. Aceast ultim
proprietate este msurat prin ILP (Instruction Level Paralelism), adic prin
numrul de instruciuni susceptibile a fi executate simultan pentru o
aplicaie.
Exploatarea eficace a arhitecturii superscalare cere modificarea
ansamblului de tehnici materiale i logice de tratarea dependenelor. Global,
arhitectura se va compune din mai multe blocuri funcionale (uniti de
execuie). Ca exemplu de organizare arhitectural este dat, n figura 2.28.,
schema de principiu a procesorului UltraSparc III.
Unitate de lansare a instruciunilor
Cache de instruciuni
Coad de instruciuni
Logic de control global

Unitate de calcul flotant

Unitate de calcul ntregi

Multiplicator flotant
Registre
virgul
flotant

Sumator flotant
Divizor flotant

Logic de calcul al
dependenelor
Registre
intregi

Unitate grafic

2 pipeline ntregi
Pipeline LD/ST

Unitate de cache de date


Cache de date
Cache de scriere
Coad de scriere
Cache prencrcare

80

Sorin Adrian Ciureanu

Fig. 2.28. Arhitectura procesorului UltraSparc III


Procesoarele care iniiaz execuia mai multor operaii simultan ntrun ciclu se numesc procesoare cu execuii multiple ale instruciunilor. Un
astfel de procesor aduce din cache - ul de instruciuni una sau mai multe
instruciuni simultan i le distribuie spre execuie n mod dinamic sau static
multiplelor uniti de execuie paralele. Dac decodificarea instruciunilor,
detecia dependenelor de date, rutarea i lansarea lor n execuie din
bufferul de prefetsch nspre unitile funcionale se fac prin hardware,
procesoarele se numesc superscalare.
Pot exista mai multe uniti funcionale distincte, dedicate diferitelor
tipuri de instruciuni, de exemplu de tip ntreg sau flotant. Aadar execuiile
instruciunilor ntregi se suprapun instruciunilor flotante. Paralelismul
temporal determinat de procesarea pipeline se suprapune peste un paralelism
spaial determinat de existena mai multor uniti de execuie.
Este evident c n cazul superscalar complexitatea logicii de control
este mult mai ridicat dect n cazul pipeline , ntruct detecia i
sincronizrile ntre structurile pipeline de execuie cu latene diferite i care
lucreaz n paralel devin mult mai dificile.
Majoritatea microprocesoarelor RISC actuale sunt de tip superscalar.
Exemple remarcabile sunt INTEL 960 CA, SUN SuperSparc, MPC 601,
603, 620 (POWER PC) etc. Microprocesoarele Intel Pentium, AMD K6 etc.
Sunt procesoare avnd model de programare CISC dar execuie hardware
superscalar.

2.7.2. Hazarduri n arhitectura superscalar


2.7.2.1. Hazarduri structurale. Dependena de resurse.
Prima problem evident este necesitatea de a obine simultan n
instruciuni. Ea este rezolvat printr-un cache ce permite lectura simultan a
mai multor cuvinte la fiecare ciclu i printr-un bus larg ntre cache i

Arhitectura calculatoarelor

81

unitatea de instruciuni. Mrirea dimensiunilor acestor cache-uri tinde


uneori s cear mai mult dect un ciclu pentru a efectua un acces complet.
Desigur, acest acces poate fi divizat n dou etaje de pipeline. Numrul de
sumatoare, UAL, etc. depinde de gradul superscalar i determin compoziia
admisibil a grupului de instruciuni de executat n paralel. De exemplu,
UltraSparc III permite:
-4 instruciuni ntregi ( 2 instruciuni UAL, 1 LD sau ST, 1 branch;)
-2 instruciuni flotante;
-2 instruciuni grafice.
2.7.2.2. Hazarduri de date
Ca i n arhitectura pipeline simpl , dependenele de date sunt
gestionate n material (hard). Controlul trebuie atunci s urmreasc
dependenele din interiorul unui bloc de instruciuni i dintre instruciunile
din blocuri diferite.
Complexitatea controlului crete deci ptratic n funcie de gradul de
suprascalar.
Execuia pipeline n prezena unei dependene a datelor penalizeaz
foarte grav arhitectura superscalar pentru c:
-anticipaia nu este posibil ntre instruciunile aceluiai bloc cnd
dependena are loc n acelai etaj;
(de exemplu, ADD R1R2R3 i apoi ADD R4R1R2 );
-ntre instruciunile din dou blocuri consecutive pentru care nici o
anticipaie nu este posibil, (LD R1(R2) n blocul i , ADD R3R3R1 n blocul
i+1), eliminarea suspendrii prin deplasare de cod cere compilatorului s
insereze un bloc complet de n instruciuni independente de cele ale
blocului i ntre cele dou blocuri.
Execuie n dezordine. Pentru a limita consecinele dependentelor de
date, instruciunile care urmeaz unei instruciuni suspendate, dar care
sufer de dependen, sunt autorizate s progreseze. Cu execuia n
dezordine, ciclul n care rezultatul unei instruciuni devine disponibil nu
poate s fie determinat simplu, n material, la decodarea instruciunii.
Algoritmii de control centralizat devin inaplicabili. Decodajul trebuie s fie
descentralizat la fiecare unitate funcional (figura 2.29). Pentru aceasta,
pipeline-ul se execut n ordine pn la o anumit etap, numit lansarea
instruciunii, care poate s fie etajul ID sau un etaj inserat ntre ID i EX.
Apoi instruciunile sunt trimise fiecare ntr-un ir de ateptare asociat

82

Sorin Adrian Ciureanu

unitii funcionale corespunztoare (FADD ctre sumatorul flotant, FMUL


ctre multiplicatorul flotant etc.)..

Unitate funcional

Unitate funcional

#dest

#s1

#s2

#dest

#s1

#s2

#dest

#s1

#s2

#dest

#s1

#s2

#dest

#s1

#s2

#dest

#s1

#s2

#dest

#s1

#s2

#dest

#s1

S2

Staie de rezervare

Staie de rezervare

Fig. 2.29. Principiul staiilor de rezervare.


O logic de control asociat irului de ateptare examineaz bus-ul
de rezultat, pe care transmite rezultatele etichetate cu numrul de registru
destinaie. Cnd rezultatul ateptat trece pe bus, valoarea sa este nregistrat
n cmpul de operanzi al instruciunii n ateptare i utilizat cnd
instruciunea accede operatorul. Ansamblul format din irul de ateptare i
controlul asociat se numete staie de rezervare
Redenumirea registrelor. O consecin a execuiei n dezordine este
c hazardurile WAW devin mai frecvente: o instruciune blocat poate scrie
registrul su destinaie dup o instruciune care sintactic o preceda (WAW).
Desigur, este posibil s se introduc suspendri pentru a gestiona aceste
hazarduri: o instruciune care trebuie s scrie acelai registru ca o
instruciune blocat este la rndul su blocat. Recurgerea sistematic la
aceast soluie ar anula rapid execuia n dezordine. Soluia utilizat n
general este redenumirea registrelor.
Registrele fizice reale sunt mai numeroase dect registrele logice.
Cnd controlul detecteaz o dependen WAW, scrierea se face n dou
registre diferite. Scrierea final n bancul registrelor care reprezint bancul
registrelor logice este constrns s se efectueze n ordinea sintactic a
programului. Aceasta conduce la introducerea unui etaj suplimentar n
pipeline, corespunztor scrierii finale, numit completare (complete).
2.7.2.3. Hazarduri de control

Arhitectura calculatoarelor

83

Instruciunile care modific execuia secvenial a instruciunilor


sunt salturile, ramificaiile i apelurilor de procedur. Semantica
secvenial impune unei secvene sintactice s produc o anumit execuie,
cu anumite condiii. Realizarea acestei semantici, pentru o microarhitectur
pipeline nu este deloc simpl. Este vorba n acest caz despre hazarduri de
control.
Hazardurile de control sunt foarte grave n arhitectura superscalar:
este foarte greu s umpli timpul de salt sau de ramificaie cnd el este format
nu dintr-o instruciune ci din 4 sau 8. n afar de aceasta, pentru ramificaiile
condiionate cu anulare, o predicie rea conduce la anularea a n instruciuni
dac predicia compilatorului nu este exact. n sfrit, compilatorul nu
dispune de suficient informaie pentru a prezice eficient comportamentul
ramificaiilor condiionate.
Principalele tehnici dezvoltate pentru superscalar sunt cache-urile de
adrese de ramificaie, care suprim timpul de salt, i predicia dinamic de
ramificaie, care amelioreaz performanele prediciei.
Cache-urile de adrese de salt. S considerm cazul unei ramificaii
necondiionate sau al unei ramificaii condiionate prezis da. Durata de
ramificaie este datorat decodrii instruciunii combinat cu calculul
adresei int, totul efectundu-se pe ct posibil n etajul ID. Tehnica cacheurilor de adrese const n memorizarea adreselor int a saltului sau
ramificaiei corespunztoare ultimelor salturi sau ramificaii efectuate.
Pentru fiecare instruciune, adresa instruciunii de ramificaie este comparat
cu adresele din cache-ul de ramificaie, n timpul etajului LI. Dac adresa
este prezent, nseamn c este vorba despre o instruciune de ruptur de
secven i c adresa int a urmtoarei instruciuni de executat este
disponibil pentru ciclul urmtor. Se obine astfel o durat de ramificaie
nul. ns, o instruciune de ramificaie necondiionat sau prezis da
conduce la anularea instruciunilor urmtoare n blocul care conine
instruciunea de ramificaie.
Tampon de predicie a ramificaiei. Predicia dinamic a
ramificaiei abate comportamentul ateptat al ramificaiei de la
comportamentul dintr-o execuie anterioar instruciunilor de ramificaie. n
cazul cel mai simplu, se utilizeaz un predictor 1 bit. O tabel, realizat n
hard, conine un bit pe intrare. Cnd se execut o instruciune de ramificaie,
prile nesemnificative ale adresei de ramificaie servesc la indexarea tabelei
i a bitului de prezis rezultatul ramificaiei. Nu este necesar, deci, s se
atepte rezultatul calculului condiiei. O ramificaie da poziioneaz

84

Sorin Adrian Ciureanu

predictorul la da, ramificaia urmtoare va fi predicionat da i adresa


ramificaiei luat din cache-ul de adrese de ramificaii ; o ramificaie nu
poziioneaz predictorul la nu , urmtoarea ramificaie va fi predicionat
nu i adresa de bloc de instruciuni urmtoare este luat n secven.
Dac predicia este eronat, blocul de instruciuni care a nceput s fie
executat este anulat.
Calitatea prediciei poate s fie ameliorat n dou feluri. Mai nti,
indexarea prin bii nesemnificativi nu verific dac este vorba de ramificaie
bun; mrind dimensiunile tabelei, probabilitatea acestui eveniment
diminueaz. S-a artat c un rezultat quasi-optimal se obine cu tabele de
ordinul a 4K intrri.
Pe de alt parte , se poate nuana comportamentul predictorului. Se
utilizeaz un predictor 2 bii, cu patru stri. (figura 2.26).
Dezavantajele pot fi de asemenea micorate utiliznd mai multe
cahe-uri de instruciuni: unele arhitecturi efectueaz simultan lectura
instruciunilor int i a instruciunilor n secven.
Instruciuni predicionate. Instruciunile de ruptur de secven au
adesea un dezavantaj, mai mult sau mai puin important. Ele limiteaz
dimensiunea codului pe care compilatorul poate s-l reordoneze. n practic,
compilatoarele lucreaz pe blocuri de baz, adic pe fragmente de cod surs
cuprinse ntre dou instruciuni de ruptur de secven (corpuri de bucl,
fiecare ramur a unui salt condiionat ). Ori optimizarea compilrii este mai
important pentru arhitecturile superscalare dect pentru cele de pipeline
simplu: compilatorul va reorganiza codul pentru a prezenta blocuri de
instruciuni compatibile i fr dependen.
Instruciunile predicionate
introduc condiia n interiorul
instruciunii. De exemplu, n arhitectura Alpha, figureaz o instruciune
MOVxx. Aici xx este o condiie boolean standard, care pointeaz pe
registru. Dac condiia este adevrat, instruciunea este executat, dac nu
ea este echivalent cu un NOP. Penalitatea este atunci de maximum o
instruciune i, mai ales, codul nu mai conine ramificaii. De exemplu,
calculul n R3 a minimului dintre dou variante coninute n registrele R1 i
R2 se va scrie:
MOVA R3,R1
CMP
R1,R2
MOVL R3,R2
Arhitectura IA-64 INTEL a realizat ceea ce se urmrea de un deceniu
prin cercetrile n arhitectur: un set de instruciuni cu toate instruciunile
predicionate.

85

Arhitectura calculatoarelor

n concluzie, trebuie remarcat c evoluia rapid a circuitelor


integrate modific foarte repede condiiile materiale de realizare a unei
ahitecturi logice. n anii 80, esenial n complexitatea concepiei unui
microprocesor era concentrat, n afara aspectelor microelectronice proprii,
asupra microprogramrii prii de control, deci asupra optimizrilor fine i
locale. n prezent, arhitectura trebuie s organizeze ntr-o structur
eficace un numr considerabil de substructuri, ele insele foarte
complexe.

2.7.3. Arhitectura superscalar Tomasulo


Roberto Tomasulo este considerat a fi pionerul procesrii
superscalare, motiv pentru care a fost laureat al premiului Eckert Mauchly
Award pe anul 1996, acordat celor mai performani constructori i
proiectani de calculatoare.
Arhitectura Tomasulo este de tip superscalar, avnd deci mai multe
uniti de execuie, iar algoritmul de control al acestei structuri stabilete,
relativ la o instruciune adus, momentul n care aceasta poate fi lansat n
execuie i unitatea de execuie care va procesa instruciunea. Arhitectura
permite execuia multipl (MEM) i Out of Order a instruciunilor i
constituie modelul de referin n reorganizarea dinamic a instruciunilor
ntr-un procesor superscalar. De asemenea algoritmul de gestiune aferent
structurii permite anularea hazardurilor WAR i WAW, printr-un ingenios
mecanism hardware de redenumire a registrelor, fiind deci posibil execuia
Out of Order i n aceste cazuri. Singurele hazarduri care impun execuia
In Order sunt cele de tip RAW.
n cadrul acestei arhitecturi, detecia hazardurilor i controlul
execuiei instruciunilor sunt distribuite iar rezultatele instruciunilor sunt
pasate anticipat
direct unitilor
de execuie prin intermediul unei
Memorie
Memorie
instruciuni
magistrale CDBdate
(Common Data
Bus).
Principiul arhitecturii Tomasulo este prezentat n figura 2.30. Ea a
fost implementat prima dat n unitatea de virgul mobil a calculatorului
LOAD
STIV
SET
IBM 360/91.BUFFERS
INSTRUCIUNI
REGISTRE
(LB)

FLOTANTE

STORE
BUFFERS
Staii
de
rezer
vare
(SR)

Spre
memorie
3 uniti de
execuie
(ADD)

2 uniti de
execuie
(MUL)

86

Sorin Adrian Ciureanu

OPCODE BUS

3
2
1

2
1

CDB
Fig.2.30. Arhitectura Tomasulo
Staiile de rezervare SR memoreaz din stiva SIF (Stiva de
Instruciuni Flotante, pe post de bufer de prefetch aici) instruciunea ce
urmeaz a fi lansat spre execuie. Execuia unei instruciuni ncepe dac
exist o unitate de execuie neocupat momentan i dac operanzii afereni
sunt disponibili n SR aferent.
Fiecare unitate de execuie (ADD, MUL) are asociat o SR (Staie de
rezervare ) proprie. Unitile ADD execut operaii de adunare/scdere iar
unitile MUL operaii de nmulire/mprire. Modulele LB(LOAD
BUFFER) i SB(STORE BUFFER) memoreaz datele ncrcate din
memoria de date respectiv datele care urmeaz a fi memorate. Toate
rezultatele care vin de la unitile de execuie i de la bufferul LB sunt
trimise pe magistrala CDB.
Exist n cadrul procesrii superscalare trei stadii de procesare a
instruciunilor i anume:
1) Startare Se aduce o instruciune din SIF (bufferul de prefetch)
ntr-o staie de rezervare. Aducerea se va face numai dac exist o SR liber.
Dac operanzii afereni se afl n FPR (setul de registre generale), vor fi
adui n SR aferent. Dac instruciunea este de tip LOAD/STORE, va fi
ncrcat ntr-o SR numai dac exist un buffer (LB=Load Buffer sau

Arhitectura calculatoarelor

87

SB=Store Buffer) disponibil. Dac nu exist disponibil o SR sau un buffer,


rezult c avem un hazard structural i instruciunea va atepta pn cnd
aceste resurse se elibereaz.
2) Execuie. Dac un operand nu este disponibil, prin monitorizarea
magistralei CDB de ctre SR (snooping spionaj), se ateapt respectivul
operand. n aceast faz se testeaz existena hazardurilor de tip RAW ntre
instruciuni. Cnd ambii operanzi sunt liberi, se execut instruciunea n
unitatea de execuie corespunztoare.
3) Scriere rezultat (WB). Cnd rezultatul este disponibil se nscrie pe
CDB i de aici n FPR sau ntr-o SR care ateapt acest rezultat
(forwarding).
Pe parcursul acestor faze nu exist testri pentru hazarduri WAR sau
WAW, acestea fiind eliminate prin natura algoritmului de comand dat mai
jos.
O staie de rezervare deine 6 cmpuri cu urmtoarele semnificaii:
OP codul operaiei (opcode) instruciunii din SR.
Qj , Qk codific pe un numr de bii unitatea de execuie (ADD;
MUL) sau numrul buferului LB care urmeaz s genereze operandul surs
aferent instruciunii din SR. Dac acest cmp este zero, rezult c operandul
surs este deja disponibil ntr-un cmp Vj sau Vk sau pur i simplu nu este
necesar. Cmpurile Qj, Qk sunt pe post de TAG, adic adic atunci cnd o
unitate de execuie sau un buffer LB paseaz rezultatul pe CDB, acest
rezultat se nscrie n cmpul Vi sau Vj al acelei SR al crei TAG coincide cu
numele unitii de execuie sau bufferului care a generat rezultatul.
Vj , Vk conin valorile operanzilor surs afereni instruciunii din
SR. Remarcm c doar unul din cmpurile Q respectiv V sunt valide pentru
un anumit operand.
BUSY indic atunci cnd este setat c SR i unitatea de execuie
aferent sunt ocupate momentan.
Registrele generale FPR i buferele SB dein fiecare, de asemenea,
cte un cmp Qi care codific numrul unitii de execuie care va genera
data ce va fi ncrcat n respectivul registru general i va fi stocat n
memoria de date. Aceste registre dein i cte un bit de BUSY. Buferele SB
dein n plus un cmp care conine adresa de acces i un cmp care conine
data de nscris. Buferele LB conin doar un bit BUSY i un cmp de adres.
Spre a exemplifica funcionarea algoritmului, s considerm n
continuare o secven simpl de program main:
Start Execuie Scriere rezultat

88

1
2
3
4
5
6

Sorin Adrian Ciureanu


LF F6,27(R1)
x
x
LF F2,45(R2)
x
x
MULTF F0,F2,F4
x
SUBF F8,F6,F2
x
DIVF F10,F0,F6
x
ADDF F6,F8,F2
x

n continuare prezentm starea SR i FPR n momentul definit mai


sus, adic prima instruciune ncheiat, a doua n faza de execuie i celelalte
n faza de startare.
Staiile de rezervare (SR)
Nume BUSY OP
Vj
Vk
Qj
Qk
SR
ADD1
DA
SUB [LOAD1]
LOAD2
ADD2
DA
ADD
ADD1
LOAD2
ADD3
NU
MUL1
DA
MUL
[F4]
LOAD2
MUL2
DA
DIV
[LOAD1] MUL1
Registrele generale FPR
CMP
F0
F2
Qi
MUL1 LOAD2
BUSY
DA
DA

F4
NU

F6
ADD2
DA

F8
ADD1
DA

F10
MUL1
DA

Din aceste structuri de date implementate n hardware, rezult, de


exemplu, c SR ADD1 urmeaz s lanseze n execuie instruciunea SUBF
F8,F6,F2. Valoarea primului operand (F6) se afl deja n cmpul Vj unde a
fost memorat de pe magistrala CDB ca urmare a terminrii execuiei primei
instruciuni. Evident c rezultatul acestei instruciuni a fost preluat de pe
CDB n registrul F6 dar i n bufferul LB1. Al doilea operand al instruciunii
SUBF nu este nc disponibil. Cmpul de TAG Q k arst c acest operand va
fi generat pe CDB cu adresa LOAD2 (LB2) i deci aceast SR va prelua
operandul n cmpul Vk de ndat ce acest lucru devine posibil. Preluarea
acestui operand se va face de ctre toate SR care au cmp de TAG identic cu
LOAD2 (LB2).
S considerm, de exemplu, c latena unitilor ADD este 2
impulsuri pe tact, latena unitilor MUL este de 10 impulsuri pe tact pentru
o nmulire i 40 impulsuri pe tact pentru o mprire. Starea secvenei
anterioare n tactul premergtor celui n care instruciunea MULTF va intra
n faza WB va fi urmtoarea:

89
Arhitectura calculatoarelor
Start Execuie Scriere rezultat
1 LF F6,27(R1)
x
x
x
2 LF F2,45(R2)
x
x
x
3 MULTF F0,F2,F4
x
x
4 SUBF F8,F6,F2
x
x
x
5 DIVF F10,F0,F6
x
6 ADDF F6,F8,F2
x
x
x
n acest moment, starea staiilor de rezervare i a setului de registre
generale va fi:

Staiile de rezervare (SR)


Nume BUSY OP
Vj
Vk
SR
ADD1
NU
ADD2
NU
ADD3
NU
MUL1
DA
MUL (LOAD2)
[F4]
MUL2
DA
DIV
[LOAD1]

Qj

Qk

MUL1

Registrele generale FPR


CMP
F0
F2
F4
F6
F8
F10
Qi
MUL1
MUL2
BUSY
DA
NU
NU
NU
NU
DA
De remarcat c algoritmul a eliminat hazardul WAR prin registrul F6
ntre instruciunile DIVF i ADDF i a permis execuia Out of Order a
acestor instruciuni, n vederea creterii ratei de procesare. Cum prima
instruciune s-a ncheiat, cmpul Vk aferent SR MUL2 va conine valoarea
operandului DIVF, permind deci ca instruciunea ADDF s se ncheie
naintea instruciunii DIVF . Chiar dac prima instruciune nu s-ar fi
ncheiat, cmpul Qk aferent SR MUL ar fi poantat la LOAD1 i deci
instruciunea DIVF ar fi fost independent de ADDF. Aadar, algoritmul
evit hazardurile WAR prin pasarea rezultatelor n SR de ndat ce acestea
sunt disponibile.
Pentru a pune n eviden ntreaga for a algoritmului n eliminarea
hazardurilor WAR i WAW prin redenumirea dinamic a resurselor, s
considerm bucla urmtoare:
LOOP:
LF F0, 0 (R1)
MULTF F4, F0, F4
SD 0 (R1), F4
SUB R1, R1, #4

90

Sorin Adrian Ciureanu

BNEZ R1, LOOP


Considernd o unitate de predicie a ramificaiilor de tip branch
taken, 2 iteraii succesive ale buclei se vor procesa astfel:
LF F0, 0 (R1)
MULTF F4, F0, F4
SD 0 (R1), F4
LF F0, 0 (R1)
MULTF F4, F0, F2
SD 0 (R1), F4

Start Execuie Scriere rezultat


x
x
x
x
x
x
x
x

Se observ o procesare de tip loop unrolling (netezirea buclei) prin


hardware (tabelele imediat urmtoare) . Instruciunea LOAD din a doua
iteraie se poate executa naintea instruciunii STORE din prima iteraie
ntruct adresele de acces sunt diferite n cmpurile de buffere. Ulterior i
instruciunile MULTF se vor putea suprapune n execuie. De remarcat c
hazardul WAW prin F0 ntre instruciunile LOAD s-a eliminat cu ajutorul
staiilor de rezervare SR i a bufferelor SB i LB .
Staii de rezervare (SR)
Nume BUSY OP
Vj
Vk
Qj
Qk
SR
ADD1
NU
ADD2
NU
ADD3
NU
MUL1
DA
MUL
[F2 ]
LOAD1
MUL2
DA
MUL
[F2]
LOAD2
CMP
Qi
BUSY
ADR
V

Bufere SB
SB1
MUL1
DA
[R1]

SB2
MUL2
DA
[R1]-8

Bufere LB
CMP LB1
LB2
ADR
[R1]
[R1]-8
BUSY DA
DA
V

SB3
NU

LB3
NU

91

Arhitectura calculatoarelor

Arhitectura Tomasulo are deci avantajele de a avea logica de detecie


a hazardurilor distribuit i, prin redenumirea dinamic a resurselor, elimin
hazardurile WAW i WAR. Acest lucru este posibil pentru c resursele tip
surs folosite i aflate n starea BUSY nu se adreseaz ca nume de registre ci
ca nume de uniti de execuie ce vor produce aceste surse. n schimb
arhitectura este complex, necesitnd costuri ridicate. Este necesar o
logic de control complex, capabil s execute cutri/memorri asociative
cu viteza ridicat.
Avnd n vedere progresul tehnologiilor VLSI, variante uor
mbuntite ale acestei arhitecturi se aplic practic n toate arhitecturile
superscalare actuale . Pentru reducerea conflictelor se folosesc mai multe
busuri de tip CDB.

2.7.4. Arhitectura tipic a unui procesor superscalar


Pe baza ideilor de implementare a execuiilor multiple din arhitectura
Tomasulo, o arhitectur superscalar tipic este alctuit ca n figura 2.31.
SR sunt staiile de rezervare aferente unitilor de execuie ale procesorului.
Acestea implementeaz, printre altele, bufferul instruction Window
necesar procesoarelor superscalare cu execuie Out of Order. Numrul
optim de locaii al fiecrei SR se determin prin simulare.
Performana maxim a acestei arhitecturi ar fi de 6 instruciuni pe
ciclu dar ea este limitat de capacitatea buferului de prefetch. Mrirea
acestei capaciti complic foarte mult logica de detecie a hazardurilor
RAW. Modulele componente din schema prezentat n figura 2.31. au
urmtoarele roluri: Decodificatorul plaseaz instruciunile multiple n SRurile corespunztoare. O unitate funcional poate starta execuia unei
instruciuniCache
dindeSR imediat dup decodificare, dac instruciunea nu are
instruciuni
dependene,
are operanzi disponibili i dac unitatea de execuie este liber.
n caz contrar instruciunea ateapt
condiii vor fi
Set den SR pn cnd
Buffer aceste
de
registre dintr-o SR
reordonare
ndeplinite. Dac mai multe instruciuni
sunt simultan disponibile
spre a Decodificator
fi executate, procesorul o va selecta pe prima din secvena de
instruciuni.

SR

2xSR

SR

SR

SR

branch

2xALU

SHIFT

LOAD

STORE

D-CACHE

92

Sorin Adrian Ciureanu

CDB
ADR

DATA

Fig.2.31. Arhitectura tipic a unui procesor superscalar


Desigur c este necesar un mecanism de arbitrare n vederea
accesrii CDB de ctre diversele uniti de execuie (UE). n vederea
creterii eficienei, deseori magistralele interne sunt multiplicate. De
exemplu, ntr-o structur superscalar puternic, similar cu cea
implementat la microprocesorul Motorola MC 88110, circulaia informaiei
beneficiaz de multiplicarea magistralelor CDB i a registrelor generale.
Setul de registre generale este multiplicat fizic; coninutul acestor seturi
fizice este identic ns n orice moment.

Capitolul 3
UNITATEA DE MEMORIE

93

Arhitectura calculatoarelor

3.1. MEMORIA FIZIC


Principalele elemente hard care intr ntr-un sistem de memorie
sunt:
-registrele generale ale procesorului;
-memoria CACHE;
-memoria principal;
-memoria secundar.
n memoria intern a unui computer intr memoria principal i
memoria CACHE iar memoria extern este format din memoria
secundar ( hard disk, flopy disk, CD-ROM etc).
Din punct de vedere fizic, memoria intern a unui calculator se
realizeaz cu circuite integrate semiconductoare iar memoriile externe sunt
magnetice sau optice.

Procesor

registre
generale

Memorie
principal
(RAM)

Memorie
secundar
(hard disc)

Memoria
cache

Fig 3.1. Elementele hard ale unui sistem de memorie.


Principalele caracteristici ale unei memorii sunt:
-modul de organizare;
-capacitatea;
-timpul de acces;
-puterea consumat;
-ciclul memoriei;
-tehnologia de realizare.
-Modul de organizare al memoriei este legat de geometria sa i
nseamn lungimea unui cuvnt de memorie (8,16,32,64,128 bii) precum i
aranjarea i adresarea cuvintelor. Unitatea minimal de informaie, care

94

Sorin Adrian Ciureanu

poate s fie prezent sau absent n memoria principal sau memoria


CACHE este blocul. Orice adres trebuie s aib dou componente:
numrul blocului i poziia n bloc. De aici apar o serie de probleme care
trebuiesc luate n considerare: unde se poate plasa un bloc, cum se poate
regsi un bloc, ce bloc trebuie nlocuit n absena blocului referit, cum
funcioneaz scrierea etc.
-Capacitatea memoriei nseamn puterea sa de stocare a informaiei
i se exprim n multipli de baii (octei).
-Timpul de acces (a) este o caracteristic de catalog, foarte
important, care exprim viteza unei memorii. De obicei se msoar la
citire din memorie. Timpul de acces este durata dintre dou momente de
timp: momentul cnd adresa este disponibil pe liniile de adres i
momentul cnd datele sunt disponibile pe liniile de date. Se exprim n
uniti de timp (s sau ns).
Adresa este disponibil
Linii adrese
Datele citite sunt disponibile
Linii date

a
Fig. 3.2. Reprezentarea timpului de acces al unei memorii.
-Energia consumat de un cap de memorie n unitatea de timp
exprimat, cel mai adesea, n watt/bit.
-Ciclul memoriei este timpul necesar pentru scrierea/citirea unei
locaii de memorie, timp ce se exprim n s sau ns.
-Tehnologia de realizare. Exist dou tehnologii de baz de realizare
a circuitelor integrate i anume: tehnologia bipolar i tehnologia MOS.
Tehnologia bipolar are la baz tranzistorul bipolar cu trei jonciuni
(Baza, Emitor,Colector).
C
B
E
Ca element de stocare utilizeaz regimul blocat/saturat al tranzistorului.

Arhitectura calculatoarelor

95

Tranzistor blocat: pe BE exist o tensiune mai mic de 0,2 V , deci e


ca un ntreruptor deschis prin care nu trece curent.
Tranzistor saturat: pe BE exist o tensiune mai mare de 0,2 V i
tranzistorul este deschis, deci e ca un ntreruptor nchis (ca un scurt circuit)
prin care trece curent. Principalul avantaj al acestei tehnologii este viteza
foarte mare. Principalul dezavantaj este densitatea de integrare destul de
mic. n trecut se fceau microprocesoare de mic capacitate cu tehnologie
bipolar, aa numitele bit-slice-uri, procesoare pe 4 bii care erau foarte
rapide. Erau grupate cte 4 sau cte 8 i alctuiau procesoare de 16 sau 32
bii.
Tehnologia MOS (Metal Oxid Semiconductor) are la baz
tranzistorul MOS i se caracterizeaz printr-o densitate de integrare foarte
bun dar cu o vitez mult mai mic. Actualele procesoare i circuite de
memorie se fac cu tehnologia MOS, ajungndu-se la o densitate de integrare
de un miliard tranzistori /cip.

3.2. CLASIFICAREA CIRCUITELOR DE MEMORIE


3.2.1. Clasificarea dup volatilitate
Exist memorii :
-volatile;
-nevolatile.
O memorie volatil este acea memorie n care informaia se pierde la
decuplarea tensiunii de alimentare iar o memorie nevolatil nu i pierde
informaia cnd tensiunea de alimentare este decuplat.
Dintre circuitele de memorie nevolatil se pot cita : ROM (READ
ONLY MEMORY), EPROM, PROM, FLASHPROM. Primele trei tipuri
utilizeaz pentru scriere un circuit special de promuri , un dispozitiv care
scrie informaii n promuri n mod offline. Aceasta se poate realiza o singur
dat. Dac se dorete o renscriere de informaie n PROM, informaia veche
trebuie tears. tergerea ntregii informaii se fcea cu raze ultraviolete.
Renscrierea informaiei n circuitele nevolatile n PROM-uri era anevoioas
i, ceea ce era mai deranjant, se fcea offline. Era nevoie de un circuit care
s realizeze acest lucru online. Asemenea circuit a aprut n anii 90 i se
numete FLASHPROM. Iniial, a fost o comand a telefoniei mobile dar s-a
extins i la sistemele de calcul.
Un FLASPHROM este nscris ori de cte ori se dorete n mod
online, pe busul intern.

96

Sorin Adrian Ciureanu

Circuitele volatile sunt cele ce nu pstreaz informaia i sunt de tip


RAM (Random Acces Memory). Ele permit att scrierea ct i citirea.

3.2.2. Clasificarea dup modul n care sunt pstrate


informaiile
Din acest punct de vedere exist dou tipuri de memorie:
-memorie RAM static;
-memorie RAM dinamic, DRAM (Dynamic Random Acces Memory)
3.2.2.1. Memoria RAM static
Memoria static utilizeaz ca tehnic de memorare funcionarea
blocat / deschis a unui tranzistor. (0-blocat, 1-deschis). Numrul de
tranzistori aferent stocrii unui bit de memorie static este relativ mare, de
aceea memoria static este o memorie scump. n schimb este o memorie
rapid. Este utilizat acolo unde este necesar o vitez foarte mare, de
exemplu la memoriile CACHE.
3.2.2.2. Memoria RAM dinamic (DRAM)
Reducerea numrului de tranzistori pe bit are la baz schimbarea
principiului de stocare a informaiei. Memoria dinamic utilizeaz
condensatorul dren surs a unui tranzistor MOS. Stocarea informaiei
folosete sarcina acumulat pe condensator. Dac este descrcat (tensiunea
zero) reprezint bitul 0 iar dac este ncrcat cu o tensiune oarecare
reprezint bitul 1.
Deoarece un condensator se descarc n timp, trebuie s existe o
posibilitate de rencrcare a tensiunii pe condensator. Acest lucru se numete
remprosptarea memoriei (refresh memory). Orice memorie dinamic
trebuie s aib un dispozitiv de refresh care s rencarce , de obicei la
intervale de timp constante, condensatorul. Dispozitivul este ieftin dar
necesit un timp de refresh ceea ce face ca memoriile dinamice s fie lente.
n concluzie, memoriile statice sunt mai rapide dar mai scumpe iar
cele dinamice sunt mai lente dar mai ieftine.

3.2.3. Structura Unitii de memorie

97

Arhitectura calculatoarelor

Col 2(n-2)/2

Linia 1

Registru
adres
linie

RAS

Col 2

Col 1

n/2

Decodificator adres linie

n figura 3.1. este reprezentat schema bloc a Unitii de Memorie


(UM). O schem mai detaliat este dat n figura 3.3.

Linia 2
Linia 3

Linia 2(n-2)/2
n/2

adrese

n/2

Registru
adres
coloan

Multiplexor / Demultiplexor

Fig.3.3. Schema bloc aCAS


unei memorii RAM dinamice (DRAM).

W /R

Schema este constituit din Unitatea de Memorie propriu zis i din


trei tipuri de busuri:
-bus de adrese, unidirecional, pe care utilizatorii memoriei
acceseaz diferite adrese de UM;
-bus de date, bidirecional, care constituie suportul de schimb al
informaiei ntre UM i utilizatori, att n scriere ct i n citire;
-bus de comenzi i rspunsuri, bidirecional, care, n sensul spre
memorie, permite utilizatorului s efectueze diferite comenzi ( de exemplu
bitul W arat o comand de scriere a memoriei i bitul R arat o comand
de citire a memoriei) iar, n sensul dinspre memorie, se arat diferite stri ale
memoriei sau rspunsuri la o operaie spre memorie.
n aceast schem UM este organizat pe linii i coloane, n mod
matricial. O celul este de un bit dar n aceast schem se poate extinde

98

Sorin Adrian Ciureanu

celula chiar la dimensiunea unui cuvnt. n acest ultim caz, adresa se


mparte n dou pri: partea superioar i partea inferioar.
Adres cuvnt

PARTE
SUPERIOAR
ADRES

PARTE
INFERIOAR
ADRES
Adres
rnd

Adres
coloan

RAS
(Row
Address
Strob)
CAS
(Column
Address
Strob)

Fig.3.4. Decodificarea adresei n memoria RAM dinamic (DRAM) cu


celule de dimensiunea unui cuvnt.
Decodificarea adresei este reprezentat n figura 3.4. Din partea
superioar se va decodifica adresa de linie a matricei iar din partea
inferioar adresa de coloan. Valoarea celor dou adrese este fcut de
semnalele CAS (Column Address Strob) i RAS (Row Address Strob).
Aceast organizare este avantajoas pentru accesarea memoriei de la
adresele succesive cnd nu mai este necesar s se trimit adresele ntregi ci
numai adresele de CAS, acest lucru ducnd la mrirea vitezei. De remarcat
c un cip de memorie nu este selectat ca alte circuite integrate prin CS (Cip
Selected) ci numai prin perechea CAS-RAS. n memoria matricial,
regenerarea se realizeaz, de obicei, n mod simultan, pentru toate celulele
de pe o linie.

3.2.4. Tipuri de circuite de memorie


Principala problem la crearea unui nou cip de memorie este
reducerea timpului de acces. Dac propagarea semnalului electric prin toate
componentele unui circuit de memorie are o limit fizic, soluiile de
mbuntire a timpului de acces se ndreapt spre dou direcii:
-gsirea unor modaliti de organizare intern a circuitelor de
memorie care s elimine anumite etape ale ciclului de transfer i care
favorizeaz accesul paralel;
-simplificarea protocolului pe bus.
n continuare sunt prezentate cteva din principalele circuite de
memorie utilizate n prezent.

Arhitectura calculatoarelor

99

3.2.4.1. Circuite FPM DRAM (Fast Page Mode DRAM)


Este o memorie rapid, cu acces rapid pe pagin. Viteza sporit se
datoreaz organizrii n linii i coloane a matricei de memorie. Cnd
transferul se face la adrese succesive, adresa de linie se d o singur dat i
anume la nceputul aceluiai transfer, generndu-se numai adrese de
coloane. Deci se d un RAS numai la nceput de ciclu, urmnd apoi numai
CAS-uri. n acest fel, timpul mediu de acces, calculat pe o locaie, scade.
3.4.2.2. Circuite EDO DRAM (Extendet Data Output DRAM)
n cazul memoriilor DRAM clasice, circuitul de memorie este
selectat prin activarea semnalelor RAS-CAS. La transferul de pagin, la
fiecare activare i dezactivare a semnalului CAS, ieirile circuitului trec din
starea de nalt impedan n starea selectat i invers. Aceste treceri mresc
de fapt durata unui ciclu elementar de transfer. La circuitele de tip EDO
DRAM s-a introdus o intrare separat de selecie care permite validarea
ieirii circuitului pe toat durata unui transfer de bloc, obinndu-se o
reducere a duratei unui ciclu elementar de transfer. Reducerea timpului de
acces este valabil numai pentru operaile de citire a memoriei. Operaiile de
scriere nu beneficiaz de aceast reducere. Deoarece statistic numrul de
citiri este mai mare de aproximativ 10 ori dect numrul de scrieri, eficiena
acestui procedeu este destul de ridicat.
3.2.4.3. Circuite BEDO DRAM (Burst Extendet Data Output
DRAM)
Este un tip de memorie cu regim de lucru n avalan (burst = n flux
continuu). Acest lucru se realizeaz prin generarea automat a adreselor de
coloan, n interiorul circuitului. Dup nscrierea unei adrese de coloan, se
genereaz trei adrese consecutive. n acest mod se poate realiza accesul la
patru locaii, cu o singur adres de coloan. Regimul de lucru al acestei
memorii este 4-1-1-1.
3.2.4.4. SDRAM (Synchronous DRAM)
Sunt memorii DRAM sincrone, controlate de un semnal de tact i
adaptate noului standard de magistral sincron introdus de procesoarele

100

Sorin Adrian Ciureanu

CKE

CONTOR
REFRESH

BLOC DE CONTROL

INTEL P6 (Pro, Pentium II i III). Structura intern a unei memorii SDRAM


de 8MB este dat n figura 3.5. Memoria este organizat pe 4 blocuri,
accesibile n mod concurent. Cele mai importante caracteristici funcionale
sunt:
-se lucreaz n mod sincron, pe un semnal de ceas al procesorului;
-memoria este organizat pe blocuri ce pot funciona n paralel;
-adresarea se poate face n regim pipeline;
-este permis lansarea unui nou acces nainte de terminarea celui
anterior;

CS

Registre
de
adresare i
decodare

M
U
X

RAS

A
adrese

Control
blocuri

Poart
intrare / ieire

WE
Magistrala
adrese
CAS

512x8

512x8

512x8

512x8

A
ieire

Fig. 3.5. Schema unei memorii SDRAM (8MB)


A

Magistrala
de date

Blocuri de
memorie

CLK

-timpul de acces mediu este de 4 ori mai mic intrare


n comparaie cu o
memorie DRAM clasic.
Structura memoriei favorizeaz scrierile i citirile n regim burst. Se
Controler
poate preprograma lungimea transferului
burst la 1, 2, 4, 8 locaii sau o
REGISRU
REGISTRU
pagin ntreag. Accesul ncepeCOLOANE
la o adres specificat
COLOANEi continu pn la
lungimea programat. Lansarea unui transfer se realizeaz prin nregistrarea
unei comenzi Active, dup care se genereaz o comand Read ori Write.
Adresa dat pe comanda Active specific blocul i adresa de linie iar adresa

Arhitectura calculatoarelor

101

dat pe Read / Write specific coloana de nceput al transferului de tip burst.


Accesul nu se face numai n mod burst ci i n mod random (aleator), caz n
care adresa de coloan se poate modifica n fiecare perioad de tact.
3.2.4.5. Circuite SGRAM (Synchronous Graphics RAM)
Este un SDRAM adaptat echipamentelor de grafic care cer
performane deosebite pentru memorie. Permite citirea / scrierea n mod
burst (flux continuu), n blocuri mari. Datele sunt accesibile printr-un singur
port, performana sa foarte ridicat datorndu-se arhitecturii specifice
organizat pe dou bancuri. Aceasta permite accesarea simultan a dou
pagini diferite din memoria video.
3.2.4.6. Circuite WRAM (Windows RAM)
Sunt tot circuite utilizate n placa video pentru grafic avansat.
Exist dou porturi independente care permit operaii n paralel. De
exemplu, n timp ce pe un port se face refresh-ul imaginii pe ecran, n
cellalt port se pot scrie date n memoria video.

3.2.5. Ierarhii de memorie


Deoarece ntr-un sistem de calcul cerinele nu pot fi ndeplinite de un
singur tip de memorie, spaiul de memorare este ierarhizat pe mai multe
niveluri, cu scopul de a beneficia de diferitele tipuri de memorie. ntr-o
astfel de ierarhie se pot identifica urmtoarele niveluri:
-memoria SET-UP;
-memorii BIOS;
-set de registre generale UC;
-memorii CACHE;
-memorii RAM;
-memoria extern;
-memorie virtual.
3.2.5.1. Memorii SET-UP
Din punct de vedere funcional, o memorie SET-UP nmagazineaz
principalele caracteristici hard ale unui sistem de calcul.

102

Sorin Adrian Ciureanu

Pentru un calculator tip PC, o memorie SET-UP ar putea avea


urmtoarea configuraie:
Main
System
System
Legacy
Legacy
Floppy

Time
21:32:17
Date
02/21/2006
Diskette A [None]
Diskette B [None]
3 Mode Suport [Disabled]

Primary Master
Primary Slave
Secondary Master
Secondary Slave
Keyboard Features
Language
Supervisor Password
User Password
Halt On
Instaled Memory

[ST380021A]
[Maxtor 6L200P0]
[Auto]
[ATAPI DVD DD 2x16x4x1]
[English]
[Disabled]
[Disabled]
[All Errors]
& 96 MB

Advanced
CPU Speed
CPU: System Frequency Multiple
System/PCI Frequency (MHz)
System SDRAM Frequency Ratio
Load Performance Setting
CPU VCORE
CPU Level 1 Cache
CPU Level 2 Cache
CPU Level 3 Cache ECC Check
BIOS Update
PS/2 Mouse Function Control
USB Legacy Support
USB Legacy Support
OS/2 Outboard Memory > 64M
Chip Configuration

[1.25/1.3 GHz]
[12.5x/13.0x]
[100/33]
[Auto]
[Normal]
[1.750 V]
[Enabled]
[Enabled]
[Disabled]
[Enabled]
[Auto]
[Auto]
[Auto]
[Disabled]

Arhitectura calculatoarelor

103

I/O Device Configuration


PCI Configuraton
Boot
1 Removable Device
[Disabled]
2 IDE Hard Drive
[ST 380 02]A]
3 ATAPI CD-ROM
[ATAPI DVD DD 2x16x]
4 Other Boot Device
[INT18 Device(NetNor)]
Plug & Plax O/S
[No]
Reset Configuration Data[No]
Boot Virus Detection
[Enabled]
Quick Power On Set/Test [Enabled]
Boot Up Floppy Seck
[Enabled]
Power
Power Management
Video Off Option
Video Off Method
HDD Power Down
Suspend Mode
PWR Button<4Secs
CPU Thermal Option
Power UP Control
HARWARE Monitor

[User Define]
[SuspendOff]
[DPMS Off]
[Disabled]
[Disabled]
[Soft Off]
[Auto]

Exit
Exit Saving Changes
Exit Discarding Changes
Load Setup Defaults
Discard Changes
Save Changes
Se observ c principalele caracteristici hardware ale sistemului se
afl n aceast memorie. Utilizatorul are mai multe posibiliti:
-cu ENABLED/DISABLED s activeze/dezactiveze o anumit
caracteristic;

104

Sorin Adrian Ciureanu

-cu AUTO s autoconfigureze un anumit parametru prin citirea sa


automat.
Din punct de vedere constructiv, dezvoltarea memoriei SET UP a
avut dou perioade:
-n prima perioad era implementat cu o memorie RAM dinamic
i de aceea se mai numea memorie CMOS; deoarece este obligatoriu ca
memoria SET-UP s fie o memorie nevolatil, era alimentat la o baterie;
-o dat cu apariia FLASHPROM-ului, memoria SET-UP a fost
implementat cu acest tip de circuit.
3.2.5.2. Memorie BIOS
Memoria BIOS (Basic I/O System) trebuie s conin o serie de
drivere (programe soft pentru funcionarea dispozitivelor de intrare/ieire)
fr de care ncrcarea sistemului de operare nu poate s aib loc. Pn ca
SO s preia controlul sistemului, trebuiesc efectuate nite teste hard i
trebuie ncrcat SO dintr-o memorie extern. n acest scop este necesar ca
sistemul de calcul s foloseasc tastatura, ecranul, hard discul. Acest lucru
este posibil prin ncrcarea driverelor din memoria BIOS.
Pn la apariia PC-ului componenta BIOS era o component soft i
fcea parte din sistemul de operare al mainii (de exemplu la SO CP/M
exista o component numit BIOS). Acest lucru fcea ca mainile s nu fie
portabile, fiecare main trebuind s aib discul su sistem, cu
caracteristicile tehnice ale mainii.
Odat cu apariia PC-ului, componenta BIOS a fost scoas din SO
i introdus n hard.
De remarcat c la ultimele tipuri de calculatoare memoria SET-UP i
cea BIOS formeaz o singur component numit AWARD BIOS SET-UP.
3.2.5.3. Set de registre generale
Registrele generale ale UC - ului fac parte din memoria rapid a
calculatorului. La marea majoritate a procesoarelor ele sunt realizate cu
memorie static, care este mai rapid.
Registrele generale sunt adresabile i sunt la dispoziia
programatorului n diverse aplicaii.
3.2.5.4. Memoria cache

Arhitectura calculatoarelor

105

Memoria cache este o memorie foarte rapid, de mic capacitate,


amplasat ntre procesor i memoria principal. A fost introdus cu scopul
de adapta viteza memoriei principale la viteza unitii centrale (a
procesorului).
Alturi de registrele generale memoria cache face parte din categoria
de memorii ultrarapide ale sistemelor de calcul. Deoarece principala
problem a calculatoarelor actuale rmne viteza mic a magistralei
unitate central uniti de memorie, memoria cache reprezint o
soluie rapid ce nu folosete aceast magistral.
Memoriile cache sunt implementate cu memorie static, cu un timp
de acces foarte mic , ajungndu-se acum la 1-5 ns.
n ceea ce privete impulsurile de ceas ale microprocesorului,
consumate pentru a accesa o locaie de memorie cache, s-a ajuns azi la 1-3
impulsuri de ceas fa de 15-50 impulsuri de ceas consumate pentru o
operaie similar n memoria DRAM.
Memoria cache poate fi situat fizic n dou locaii:
-n interiorul microprocesorului, deci n acelai cip cu el, pe nivelul
L1, caz n care exist performane superioare, cu timp de acces foarte mic;
-n exteriorul microprocesorului, integrat n alt cip, pe nivelul L2,
caz n care performanele sunt mai sczute.
Principiul de funcionare a unei astfel de memorii este urmtorul:
cnd se dorete accesarea unei date din memorie, se caut mai nti n
memoria cache; dac se gsete, atunci ciclul se consider ncheiat i avem
de-a face cu un HIT (succes); dac data nu se gsete n cache , atunci ea
trebuie cutat n memoria RAM i avem de-a face cu un MIS (defect).
De remarcat c accesul la cache se afl pe drumul critic al
execuiilor instruciunilor. Orice lectur a unei instruciuni accede la cache
pentru a vedea dac instruciunea se gsete aici. Orice instruciune de acces
la memorie accede la cache pentru a ncerca s gseasc aici data referit.
Aceasta definete constrngerile temporale ale realizrii mecanismului de
cutare.
Principalul parametru care msoar performanele unei memorii
cache este RH , rata de HIT:
RT=numrul acceselor cu HIT n cache / numrul total al acceselor UC la memorie
La ora actual acest parametru este n jur de 90%.
Arhitecturi de memorie cache. Principalele probleme la care
trebuie s rspund o arhitectur a memoriei cache sunt urmtoarele:
-dimensiunea optim a unei memorii cache ;
-locul unde se scrie o nou informaie n memoria cache ;

106

Sorin Adrian Ciureanu

-modul n care se regsete informaia coninut n memoria


cache;
-care este informaia din memoria cache care va fi sacrificat
atunci cnd este plin i o nou informaie trebuie scris;
-cum se face scrierea n memoria cache.
n funcie de rezolvarea acestor probleme exist mai multe tipuri de
arhitecturi.
Exist dou principii de natur static dup care se construiesc
memoriile cache:
-principiu de localitate temporar care arat c exist o mare
probabilitate ca o dat sau o instruciune adresat la un moment de timp s
fie adresat din nou ct mai curnd;
-principiul de localitate spaial care arat c exist o mare
probabilitate ca datele situate la adrese apropiate de o dat accesat de UC
s fie accesat ct mai curnd; pe baza acestui principiu, se transfer din
memoria principal RAM n memoria cache nu cuvinte ci blocuri ntregi.
Dintre arhitecturile cache existente citm:
-memoria cache cu mapare direct;
-memorii cache total asociative;
-memorii cache set asociative (semiasociative);
-memorii cache organizate pe sectoare.
a)Memorii cache cu mapare direct
Legtura ntre cache i memoria principal se poate face n mai
multe feluri. Corespondena ntre liniile cache - ului i cele ale memoriei
principale definete n ce locaie se ncarc n cache o linie din memoria
principal. Mecanismul de coresponden trebuie s permit s se determine
rapid dac o adres memorie corespunde unei linii prezente n cache.
Mapare direct nseamn c un bloc din memoria principal poate fi
localizat n memoria cache ntr-un bloc unic, determinat conform regulii de
mapare:
(Adresa bloc memorie principal)modulo(numr blocuri din cache).
Corespondena direct asociaz la fiecare linie a memoriei principale
o unic linie de cache: linia i din memoria principal va merge n linia j a
memoriei cache, dup regula
j=i modulo N
unde N este numrul liniilor din cache.
S lum spre exemplu un cache de 2048 cuvinte i o memorie
principal de 64 Kcuvinte. Mrimea liniei este de 16 cuvinte. Cache-ul are
deci N=128=27linii i memoria principal 4K= 212 linii. Linia 0 din cache va

Arhitectura calculatoarelor

107

putea conine liniile 0, 128, 256 din memoria principal; linia 1 din cache va
putea conine liniile 1, 129, 257 din memoria principal . Metoda este
simpl, uor de implementat i permite regsirea informaiilor pe baz de
adres. Dezavantajul acestei metode const n faptul c, deoarece exist mai
multe blocuri din memoria principal care se mapeaz n acelai bloc din
cache, aceste blocuri nu pot coexista n acelai timp n cache i, deci,
accesarea a dou blocuri duce la MIS.
b) Memorii cache semiasociative (Set asociative)
n aceste memorii exist mai multe seturi , fiecare set avnd n
componen mai multe blocuri. Prin regula de mapare se precizeaz setul n
care se poate afla blocul dorit:
(adresa bloc memorie principal)modulo(numr seturi memorie cache)

Blocul adresat din memoria principal se poate mapa oriunde n setul


din memoria cache. Atunci cnd memoria cache este plin i trebuie ncrcat
un boc din memoria principal, este necesar ca s se evacueze un bloc din
cache. Exist algoritmi clasici de evacuare, majoritatea inspirai din
sistemele de operare, algoritmi ca:
-FIFO (First Input First Output)
-LRU (Least Recently Used) etc.
n ultima vreme se folosesc algoritmi de evacuare predictiv care
anticipeaz pe baze euristice utilitatea de viitor a blocurilor memorate n
cache, evacund blocul cel mai puin valoros.
Dac un set din cache conine N blocuri atunci el se numete N-way
set asociative. Prin reducerea posibilelor interferene ale blocurilor i prin
creterea gradului de asociativitate se mbuntete rata de HIT i deci
performanele globale.
Optimizarea gradului de asociativitate, a capacitii cache, a lungimii
blocului de cache, nu se pot face dect variind toi parametrii pentru a
minimiza rata global de procesare a instruciunilor.
c) Memorii cache total asociative
n acest caz exist un singur set iar ncrcarea unei adrese din
memoria principal se poate face oriunde n memoria cache. Ca
implementare nu se utilizeaz deocamdat un siliciu, datorit timpului mare
de acces.
d) Memorii cache organizate pe sectoare
Memoria principal i memoria cache sunt divizate n mai multe
sectoare care conin mai multe blocuri. Adresarea este asociativ, un sector
din memoria principal poate fi plasat n orice sector din cache. Acest tip de
memorie a fost utilizat pentru prima dat la calculatorul IBM360.
e) Tipuri de accese la memoria cache

108

Sorin Adrian Ciureanu

Accese de scriere:
-strategia Write Through, n care informaia este scris de procesor,
att n cache ct i n memoria principal;
-strategia Write Back, n care informaia este scris numai n
memoria cache, n memoria principal fiind scris numai la evacuarea din
cache.
Aceste strategii sunt tipice pentru sistemele uniprocesor. n sistemele
multiprocesor mai exist dou strategii n vederea meninerii coerenei
datelor:
-Write Invalidate, n care procesorul care scrie impune ca toate
copiile din celelalte memorii cache s fie invalidate pn cnd el i
modific blocul din memoria cache proprie;
-Write Broadcast, n care procesorul care scrie pune datele pe busul
comun spre a fi actualizate toate copiile din celelalte memorii cache.
Accese de citire:
Accesele de citire sunt date nsi de definiia memoriei cache.
Deoarece, statistic, citirea ocup 75% din accesele la cache, este deosebit de
important s fie atent studiat.
Cauzele de MIS la cache sunt urmtoarele:
-capacitatea mic;
-interferenele (conflictele) blocurilor din memoria principal pe un
acelai bloc din memoria cache; aceste conflicte pot fi reduse doar prin
mrirea capacitii sau prin creterea gradului de asociativitate.
e)Victim Cache
Pentru a se reduce rata de MIS, n special pentru memoriile cache cu
mapare direct, Norman Jouppi de la DEC(Digital Equipement Corporation)
propus conceptul de Victim Cache. Acesta reprezint o memorie de mic
capacitate, complet asociativ, plasat ntre primul nivel cache i memoria
principal.
Blocurile din cache datorate unui MIS sunt temporar evacuate n
Victim Cache i la un nou apel al lor pot fi extrase de aici. Decizia de a plasa
un bloc n cache sau Victim Cache este luat cu ajutorul unei informaii de
stare asociat blocurilor de cache. Biii de stare conin informaii de stare
asociat blocurilor de cache. Aceste informaii folosesc pentru a exclude
blocurile sigure din cache - ul mapat dorit, reducnd nlocuirile ciclice
implicate de acelai bloc. Aceast schem, numit excludere dinamic,
reduce MIS - urile. O predicie greit implic un acces la nivelul urmtor al
ierarhiei de memorie, contrabalansnd eventualele ctiguri n performan.

Arhitectura calculatoarelor

109

Pentru a reduce numrul de interschimbri ntre memoria cache,


memoria principal i Victim Cache, se utilizeaz SELECTIVE VICTIM
CACHE. Algoritmul pentru SELECTIVE VICTIM CACHE distinge trei
cazuri:
1) HIT IN CACHE, cazul n care nu particip VICTIM CACHE.
2) MIS IN CACHE, HIT In VICTIM CACHE. Cuvntul este extras
din Victim Cache i trimis spre procesor. Un algoritm de predicie va aciona
pentru a determina dac va avea loc o interschimbare ntre blocul referit i
blocul conflictual din memoria cache principal. Dac algoritmul decide c
blocul din Victim Cache este mai probabil s fie referit din nou dect cel din
cache, se realizeaz interschimbarea n sensul c blocul din Victim Cache
este transferat n cache.
3) MIS IN CACHE, MIS IN VICTIM CACHE. Dac data nu este
gsit nici n cache nici n Victim Cache, atunci ea trebuie gsit n nivelul
urmtor al ierarhiei de memorie. Exist dou situaii:
-blocul corespondent din cache este gol; n acest caz noul bloc este
adus n cache iar Victim Cache nu este afectat;
-noul bloc este n conflict cu alt bloc memorat n cache; se aplic
algoritmul de predicie pentru a vedea care din blocuri are o mai mare
probabilitate de a fi referit pe viitor; dac blocul care sosete din memoria
principal are o probabilitate mai mare dect blocul conflictual din cache,
ultimul este mutat n Victim Cache i noul bloc i ia locul n cache; blocul
sosit este direcionat spre Victim Cache i copiat n blocul tranzitoriu al
cache - ului, mapat direct, de unde poate fi accesat mai repede de ctre
procesor.
Algoritmul de predicie. Scopul Algoritmului este de a determina
care dintre cele dou blocuri conflictuale are probabilitate mai mare de a fi
referit pe viitor. Blocul considerat cu o probabilitate mai mare de acces n
viitor este plasat n cache, cellalt n Victim Cache.
Algoritmul de predicie se bazeaz pe algoritmul de excludere
dinamic propus de McFerling. Se utilizeaz doi bii de stare, asociai
fiecrui bloc, numii: HIT bit i STICKY bit.
HIT bit este:
1 cnd a avut loc cel puin un acces cu HIT la blocul respectiv, de
cnd el a prsit CACHE-ul de pe nivelul L1;
0 blocul corespunztor nu a fost deloc accesat de cnd a fost
nlocuit n CACHE.
STICKY bit este:

110

Sorin Adrian Ciureanu

1 cnd un bloc este adus n CACHE sau cnd pentru un anumit


bloc nu a avut loc nici o referire la un alt bloc conflictual cu cel iniial;
0 la referirea unui bloc conflictual, dac algoritmul decide ca
blocul s nu fie nlocuit.
Iat algoritmul de predicie pentru SELECTIVE VICTIM CACHE:
Cazul 1
Accesarea blocului B.HIT in CACHE
Actualizeaz HIT bit i STICKY bit
HIT[B]=1; STICKY[B]=1;
Cazul 2
Accesarea blocului B, HIT in VICTIM CACHE
if STICKY[A]=0 here{interschimb A cu B;
STICKY[B]=1;
else HIT[B]=1;}
if HIT[B]=0
here { STICKY[A]=0;
copiaz B n blocul tranzitoriu;}
else {interschimb A cuB;
STICKY[B]=1;
HIT[B]=0;}
endif
endif
Cazul 3
Accesarea blocului B, MIS in CACHE i n VICTIM CACHE
A este blocul conflictual n CACHE
if STICKY[A]=0
here{mut A n VICTIM CACHE;
transfer B n CACHE;
STICKY[B]=1; HIT[B]=1;
else}
if HIT[B]=0
here {transfer B n VICTIM CACHE;
copiaz B n blocul tranzistoriu
STICKY[A]=0;}
else {mut A n VICTIM CACHE;
transfer B n Cache;
STICKY[B]=1; HIT[B]=0;}
endif
endif
n cazul 2, blocul accesat, notat cu B, este rezident n CACHE.
Acesta implic un conflict ntre blocul B i cel din Cache, bloc denumit A.

Arhitectura calculatoarelor

111

Algoritmul de predicie este aplicat pentru a determina dac va avea loc o


schimbare. Dac bitul STICKY a lui A este 0, ceea ce nseamn c blocul nu
a fost accesat de la conflictul anterior la acest bloc, noul bloc B primete
prioritate superioar lui A, determinnd interschimbare. Dac bitul STICKY
a lui A este 1 i bitul HIT al lui B este O, accesul este satisfcut din VICTIM
CACHE i nu are loc nici o schimbare, considerndu-se c blocul B nu este
suficient de valoros pentru a fi aduc n CACHE. Bitul STICKY al blocului
A este resetat astfel nct o secven urmtoare care implic conflict la acest
bloc va determina mutarea lui A.
n cazul 3 se prezint situaia n care au loc accese cu MIS, att n
CACHE ct i n VICTIM CACHE. Situaia este asemntoare cu cazul 2,
cu excepia faptului c destinaia blocului sosit se alege fie CACHE fie
VICTIM CACHE.
3.2.5.5. Memoria RAM
Este memoria principal a unui sistem de calcul. Ea este constituit
din memorie dinamic care necesit refresh. Este o memorie volatil. Pentru
primele procesoare, memoria RAM avea structura din figura 3.6.
Deoarece memoria este legat de primul microprocesor 8086, are
acces doar 1M. Pentru a se pstra compatibilitatea, restul
microprocesoarelor au trebuit s pstreze aceeai schem de organizare.
Primele microprocesoare, cu sistem de operare MS-DOS, puteau rula
programe numai n memoria de baz (640k). Dac nu erau acolo puteau fi
aduse din memoria extins. De asemenea exista o poriune de 32k, numit
HIGH MEMORY (memorie nalt), destinat ncrcrii celor trei fiiere din
nucleul MS-DOS-ului.
Lucrurile au evoluat, au aprut paginarea i segmentarea, aa nct
calculatoarele de azi vd memoria ca un tot unitar, deci memoria de baz +
memoria extins; HIGH MEMORY practic nu mai exist.
.

Memoria extins
1M
640+32k
On
Memorie nalt
640k
Memorie de baz
Ok

112

Sorin Adrian Ciureanu

Fig. 3.6. Utilizarea memoriei RAM


3.2.5.6. Memoria virtual
Memoria virtual este o tehnic de organizare a memoriei prin care
se reuete s se aloce un spaiu mai mare de memorie dect memoria
intern a unui calculator. Memoria virtual este alctuit practic din
memoria intern i memoria extern (hard discul). Se creeaz un spaiu
virtual de adrese, programatorul avnd iluzia, prin mecanismele memoriei
virtuale, c deine o memorie de capacitatea hard discului i nu a memoriei
DRAM. n ceea ce privete locul memoriei virtuale n ierarhia de memorii,
putem spune c ea se situeaz ntre procesor i hard disc. Prin mecanismele
de memorie virtual se mrete probabilitatea ca informaia ce se dorete a fi
accesat de procesor, din spaiul virtual, s se afle n memoria principal.
Timpul de acces se reduce de la milisecunde la nanosecunde.
Tehnica prin care se realizeaz memoria virtual este tehnica
paginrii. Spaiul virtual compus din memoria principal i memoria extern
(hard discul) este mprit n pagini numerotate de la 1 la n.
Memoria principal

1 2 3

Memoria extern (hard discul)

k k+1

n pagini

Fig.3.7. Paginarea memoriei


Ori de cte ori sistemul de operare are nevoie de o pagin, se vede
dac aceasta exist n memoria principal. Dac exist, este utilizat n mod
normal. Dac nu, se provoac o derut de defect de pagin care va apela o
rutin cu rolul de a aduce pagina ce se dorete a fi accesat din memoria
extern n memoria principal. ntreg mecanismul este asigurat de ctre
sistemul de operare, prin gestiunea memoriei. Exist, ns, i un suport
hardware, numit MMU (Management Memory Unit) care asigur
corespondena dintre paginile fizice i paginile logice, practic asigur
maparea paginilor logice pe cele fizice. Este un mecanism asemntor cu cel

Arhitectura calculatoarelor

113

de la memoria CACHE. (Paginile fizice sunt pagini ale memoriei principale


iar cele logice ale memoriei virtuale).

Capitolul 4
UNITATEA DE INTRARE/IEIRE
Unitatea central i memoria principal comunic cu alte surse i
destinaii de informaie. Unitatea de intrri / ieiri cuprinde toate aspectele
legate de procesarea acestor interaciuni. Principalul su rol este de a lega
sistemul de calcul cu lumea extern prin intermediul perifericelor (ecran,
tastatur, discuri, benzi magnetice, reele etc.). Cea mai mare parte a
interfeelor cu exteriorul ordinatorului nu sunt pur numerice ci cuprind
dispozitive electromecanice sau electronice analogice.

4.1. SCHEMA UNUI SISTEM DE INTRARE/IEIRE


4.1.1. Structura hard a sistemelor de intrare/ieire
Prile hard ale unui sistem de intrare/ieire, a crui schem este dat
n figura 4.1., sunt:
-controlerul;
-perifericul propriu-zis.
Controlerul, un ansamblu de circuite numerice de control, este
alctuit dintr-o serie de registre de comenzi i de date. Pentru un periferic
simplu, ca tastatura sau imprimanta, exist un singur registru de comenzi i
unul de date. Pentru hard disc exist mai multe registre de comenzi i unul
de date. Lungimea registrelor este funcie de arhitectura calculatorului;
obinuit este de 16 bii.

114

Sorin Adrian Ciureanu

Secvena de lucru pentru o operaie de intrare/ieire este urmtoarea:


Cnd UC detecteaz o operaie de intrare/ieire, transmite principalii
parametri ai operaiei pe care i depune, prin intermediul busului, n
registrele de comenzi i date; n continuare, controlerul, pe baza datelor din
registre, sintetizeaz comenzi pentru periferic, comenzi pe care le pune n
interfaa controler/periferic. Dac este o operaie de scriere, pune
informaiile i pe liniile de date. Perifericul, pe baza acestor comenzi,
execut operaia i returneaz, pe interfaa cu controlerul, rspunsurile la
aceast operaie i eventualele erori. Controlerul le preia, le pune n
registrele de comenzi i date, i le transmite la UC.
CONTROLER

PERIFERIC

UC
Registru comenzi 1
Registru comenzi 2

Registru comenzi n

Dispozitiv
de
comand

UC/Mem
Registru de date

Fig.4.1. Schema bloc a unui sistem de intrare/ieire.


Cel mai simplu registru de comenzi arat astfel:
1

GO

IE

RDY

Bitul 1, de obicei bitul de GO, are rolul de a porni efectiv operaia.


Bitul 6, IE (Interruption Enable), are rolul de a masca sau nu
ntreruperea de intrare/ieire.
Bitul 7, RDY, este bitul de READY care arat dac perifericul este n
stare liber de a primi alte comenzi.
Perifericul este interfaa final cu lumea exterioar (de exemplu
discurile, tastatura mausul etc)

115

Arhitectura calculatoarelor

4.1.2. Structura soft a sistemelor de intrare/ieire


Pe suportul hard prezentat, sistemul de operare furnizeaz i
controleaz programe care s citeasc i s scrie date i comenzi n registrele
controlerului i sincronizeaz aceste operaii. Sincronizarea se face, de
obicei, cu ajutorul ntreruperilor de intrare/ieire. Pentru a realiza aceste
sarcini, softul sistemului de intrare/ieire are patru componente:
-rutinele de tratare a ntreruperilor;
-driverele asociate dispozitivelor periferice;
-programe independente de dispozitivele periferice;
-primitivele utilizator.
4.1.2.1. Rutine de tratare a ntreruperilor
Un proces, care are ncorporat o operaie intrare/ieire, este blocat
n urma unei operaii de wait la semafor. Se iniiaz operaia de
intrare/ieire iar cnd operaia este terminat, procesul este trezit printr-o
operaie signal, cu ajutorul rutinei de tratare a ntreruperilor. n acest fel,
procesul va fi deblocat i va trece n starea ready.
proces

ready

Iniiere
operaie
I/E

Rutina de
tratare a
ntreruperilor

Periferic

wait

signal

Fig.4.2. Rutina de tratare a ntreruperilor.


Se observ c sarcinile principale ale
rutinei de tratare a
ntreruperilor sunt:
-rutina identific dispozitivul periferic care a generat o ntrerupere;

116

Sorin Adrian Ciureanu

-rutina reiniializeaz linia de ntrerupere pe care a utilizat-o


perifericul;
-memoreaz ntr-o stiv starea dispozitivului periferic;
-are rolul de a trezi procesul care a iniiat operaia de I/E printr-o
operaie signal.
n acest mod procesul va fi deblocat i trecut n starea ready.
n realitate lucrurile nu sunt aa de simple, SO avnd o mare
cantitate de lucru n acest scop. Etapele parcurse n acest proces n care
intervin ntreruperile sunt:
- salvarea tuturor registrelor (i PSW);
- pornirea procedurii de ntreruperi;
- iniializarea stivei;
- pornirea controlorului de ntreruperi;
- copierea din registrele unde au fost salvate ntreruperile n tabelul
procesului;
- rularea procedurii de ntrerupere care va citi informaia din registre;
- alegerea procesului care urmeaz; dac ntreruperea a fost cauzat
de un proces de nalt prioritate, acesta va trebui s ruleze din nou;
-ncrcarea registrelor noului proces (inclusiv PSW);
-pornirea rulrii noului proces.

periferic

Rutina identific sursa ntreruperii.

Linia de
ntrerupere

Reiniializeaz linia de ntrerupere.

Memoreaz starea perifericului.

Proces
ready

signal

Trezete procesul cnd operaia de


I/E este gata.

Fig.4.3. Reprezentarea rutinei de ntrerupere.

117

Arhitectura calculatoarelor
4.1.2.2. Drivere

Driverul este partea component a SO care depinde de dispozitivul


periferic cruia i este asociat. Rolul su este de a transpune n comenzi la
nivelul registrelor controllerului ceea ce primete de la nivelul soft superior.
Din punct de vedere structural, driverul este un fiier care conine diferite
comenzi specifice unui dispozitiv periferic (figura 4.4.).
C1

C2

Cn-1

Cn

Coad de ateptare
Desfacerea
parametrilor

DA

NU
Parame
tri valizi

Translaie
Termeni abstracitermeni
concrei

NU

Ready
dispoziti
v
periferic

eroare

DA

Dispozitiv
periferic

Lansarea operaiei efective

Blocare
driver
(wait)
Operaie terminat
Trezire
driver
(signal)

Citire

Citire/scrie
re

Date disponibile

Dispozitiv
periferic

Scriere

Zona de memorie disponibil

Preluarea cererii urmtoare

118

Sorin Adrian Ciureanu

Fig. 4.4. Schema de funcionare a unui driver.

119

Arhitectura calculatoarelor

cerere citirea blocului 1123 de pe hard discul C

adresa
numr bloc
operaie

hard disc C
1123
citire date

translaie
bloc 1123

poziionare pe
cap 2, cilindru 40, sector 2 i sector 3
citire date

Dispozitiv periferic
Dispozitiv periferic

Blocar
e
driver
(wait)

trezire
driver
(signal
)

memorie

Citire date de pe sect. 2 i


3, cap2, cilindru 40.

date disponibile

preluarea cererii urmtoare

Fig. 4.5. Schema funcionrii unui driver pentru o comand de citire a


unui bloc logic.

120

Sorin Adrian Ciureanu

O prim problem care se pune este: unde ar trebui instalate aceste


drivere, n nucleu (kernel) sau n spaiul utilizator (user) ?
Prezena driverelor n user ar avea avantajul unei degrevri a kernelului de
anumite solicitri i al unei mai bune izolri a driverelor ntre ele. De
asemenea, la o eroare necontrolat provenit din driver, nu ar mai ceda
sistemul de operare aa uor. Totui, majoritatea sistemelor de operare
ncarc driverele n kernel i asta pentru o mai mare flexibilitate i o mai
bun comunicare, n special pentru driverele nou instalate.
Operaiile efectuate de un driver, a crui schem este dat n figura
4.5, sunt:
- verificarea parametrilor de intrare dac sunt valizi, n caz contrar
semnalarea erorii;
- translaia de la termeni abstraci la termeni concrei, aceasta
nsemnnd, de exemplu, la un hard disc:

cap
numr bloc adresa cilindru
sec tor

- verificarea strii dispozitivului ( ready sau nu);


- lansarea operaiei efective pentru dispozitivul periferic, de
exemplu, o citire a unui sector al hard discului;
- blocarea driverului pn cnd operaia lansat s-a terminat (printrun wait la semafor);
- trezirea driverului (prin operaia signal);
- semnalarea ctre nivelul soft superior a disponibilitii datelor (n
cazul unei operaii de citire de la periferice) sau a posibilitii de reutilizare
a zonei de memorie implicate n transferul de date (pentru o operaie de
scriere ntr-un periferic);
- preluarea unei noi cereri aflate n coada de ateptare.
Schema de funcionare a unui driver, pentru o comand de citire a
unui bloc logic de pe hard discul C, este dat n figura 4.5.
4.1.2.3. Programe-sistem independente
de dispozitive
Sarcinile ce revin acestui nivel soft sunt:
- asigurarea unei interfee uniforme pentru toate driverele;
- realizarea corespondenei dintre numele simbolice ale perifericelor
i driverele respective; n UNIX, de exemplu, un fiier este asociat unui
dispozitiv periferic;

Arhitectura calculatoarelor

121

- utilizarea unor tampoane sistem, puse la dispoziie de SO, pentru a


prentmpina vitezele diferite ale dispozitivelor periferice;
- raportarea erorilor de intrare/ieire n conjuncie cu aceste operaii
de intrare/ieire; de obicei erorile sunt reperate i generate de drivere, rolul
acestui nivel soft fiind acela de a raporta o eroare ce nu a fost raportat.
4.1.2.4. Primitive de nivel utilizator
Cea mai mare parte a sistemului de intrare/ieire este nglobat n
sistemul de operare dar mai exist nite proceduri, numite primitive de nivel
utilizator, ce sunt incluse n anumite biblioteci. Aceste proceduri au rolul de
a transfera parametrii apelurilor sistem pe care le iniiaz. Aceste primitive
pot lucra n dou moduri: sincron i asincron.
O primitiv sincron returneaz parametrii numai dup ce operaia
de intrare/ieire a fost realizat efectiv. Se utilizeaz pentru operaii de
intrare/ieire cu o durat ce trebuie estimat sau cu o durat foarte mic.
O primitiv asincron are rolul numai de iniiere a operaiei de
intrare/ieire, procesul putnd continua n paralel cu operaia. Procesul poate
testa mereu evoluia operaiei iar momentul terminrii ei este marcat de o
procedur, definit de utilizator, numit notificare. Problemele primitivelor
asincrone sunt legate de utilizarea bufferului de date. Procesul iniiator
trebuie s evite citirea/scrierea n buffer att timp ct operaia nu este
terminat, sarcina aceasta revenindu-i programatorului. Primitivele
asincrone sunt utilizate n cazul operaiilor cu o durat mare sau greu de
estimat.

4.2. TRANSFERUL DE DATE


NTR-O UNITATE DE I/E
Un transfer de date ntr-o unitate de I/E poate fi:
-transfer prin program;
-transfer prin ntreruperi;
-transfer prin DMA (Direct Memory Acces);
-transfer prin procesor de I/E.

4.2.1. Transfer prin program


Un transfer de date implic existena a trei faze:
-iniializarea transferului;

122

Sorin Adrian Ciureanu

-transferul efectiv de date;


-corecia erorilor de transfer.
n cazul transferului prin program procesorul este cel care
controleaz toate fazele de transfer, prin intermediul unui program care de
fapt este o rutin de intrare/ieire.
Iniializarea transferului const n fixarea portului de intrare/ieire
prin:
-stabilirea adresei de nceput a zonei de memorie unde are loc
transferul;
-iniializarea unui contor cu numrul de cuvinte care se transfer;
-stabilirea sensului de transfer (scriere sau citire).
Transferul efectiv de date const n schimbul de instruciuni dintre
procesor i periferice, un transfer n care procesorul trebuie s-i adapteze
viteza de lucru (foarte mare) la aceea a dispozitivului I/E (foarte mic).
Exist dou feluri de transfer de date:
-transfer programat necondiionat;
-transfer programat condiionat.
n cazul transferului necondiionat, procesorul este acela care
dicteaz viteza de transfer, neutiliznd nici un rspuns din partea
dispozitivului periferic. Exist diferite rutine de ntrziere prin care se
regleaz aceste transferuri. Procesorul trebuie s tie viteza de lucru a
perifericului i s utilizeze rutina adecvat acestui scop.
Transferul condiionat este un transfer mai eficient care se
desfoar cu o vitez mai mare. Prin aceast tehnic procesorul testeaz un
bit, numit RDY, al perifericului. RDY=1 nseamn c se poate iniia un
transfer deoarece perifericul este liber. RDY=0 nseamn c perifericul este
ocupat cu un transfer n curs i nu se poate iniia un transfer.
Transferul prin program are o serie de dezavantaje, cum ar fi:
-procesorul este ocupat cu transferul spre periferic i nu poate
executa alte operaii;
-durata minim a transferului este legat de timpul de execuie
specific fiecrui periferic.

4.2.2. Transfer prin ntreruperi


Dac transferul prin program este un transfer sincron, transferul prin
ntreruperi este unul asincron. Transferul prin ntreruperi elimin cele dou
dezavantaje ale transferului prin program.

123

Arhitectura calculatoarelor

ntrerupere nseamn oprirea temporar a execuiei unui program, la


comanda unui semnal extern, i apelul unei rutine, numit rutin de
ntrerupere, specific fiecrui eveniment ce a condus la ntrerupere. Schema
apariiei i tratrii unei ntreruperi este dat n figura 4.6.

Eveniment ce
duce la apariia
unei ntreruperi

Program
Instruct.1
Instruct.2
Instruct.3

Salvarea strii
curente a
programului

Apelarea
rutinei de
tratare a
ntreruperii

Execuia
rutinei de
ntrerupere

Fig. 4.6. Schema de tratare a ntreruperii.


De fapt, efectul unei ntreruperi este acela al unei instruciuni de salt
la o adres unde se afl o rutin care rezolv fiecare tip de ntrerupere n
parte. Sistemul de I/E are o serie rutine, utilizate n special de sistemul de
operare. Un exemplu este dat n figura 4.2.

4.2.3. Transfer direct prin DMA (Direct Memory Acces)


Transferul DMA se desfoar ntre periferic i unitatea de memorie
intern (UM), fr ca procesorul s intervin. n acest mod se creeaz un fel
de conduct ntre periferic i UM, premiz pentru viteze mult mai mari.
Un transfer DMA are mai multe faze, la fel ca la celelalte tipuri de
transfer:
-iniializarea transferului;
-transferul efectiv de date;
-verificarea terminrii i corectitudinii transferului.

124

Sorin Adrian Ciureanu

La iniializare, procesorul scrie n registrele interne ale controlerului


urmtoarele date:
-adresa de nceput a blocului de memorie ce trebuie transferat;
-lungimea blocului, de obicei n octei;
-sensul de transfer (scriere/citire);
-alte date cu privire la transfer.
n faza de transfer efectiv, blocul de memorie este dus spre sau de la
periferic, n funcie de sensul transferului.
Transferul prin DMA este utilizat cnd se dorete o cantitate mare de
transferat i este folosit n special de hard disc sau de compact disc.

4.2.4. Transfer prin procesor de intrare/ieire


La unele sisteme de calcul exist procesoare specializate n operaii
de I/E. La calculatoarele mai vechi un astfel de procesor se numea Canal
Selector (CS) sau Unitate de Schimburi Multiple (USM), la cele mai noi se
numete Procesor de I/E.
USM erau procesoare care aveau instruciuni de I/E proprii. La
calculatorul Felix-256, prevzut cu USM, existau 5 astfel de instruciuni:
SIO, TIO, TDV, HIO, TSV. Cnd Unitatea Central decodifica o astfel de
instruciune, ea era trimis ctre UM pentru a fi executat, UC executnd n
paralel alt instruciune.
Procesorul de I/E actual mai presupune un protocol de comunicaii
ntre procesorul central i procesorul de I/E.
S considerm exemplul unei interfee care trebuie s primeasc date
de la un periferic i s le transmit procesorului octet cu octet. Interfaa este
conectat direct la busul de adrese i date al procesorului.. Aceast
organizare, tipic pentru arhitecturile bazate pe microprocesoare de 8 bii,
nu mai este de actualitate, dar ilustreaz funcionalitile elementare cerute.
Interfaa conine un registru de date CDATA, de un octet, care culege
date de la periferic. Controlul transferurilor implic faptul ca interfaa s
poat s indice procesorului momentul n care transferul de la periferic s-a
terminat, deci cnd un nou octet este disponibil. Cnd interfaa primete un
octet de la periferic, ea poziioneaz bitul CRDY din registrul su de stare
STATUS. Procesorul citete registrul de stare i va citi octetul dac
CRDY=1.
Din punct de vedere al UC, trebuie s se dispun de un mijloc de a
adresa registrele CDATA i CRDY. Tehnica cea mai utilizat este de a

Arhitectura calculatoarelor

125

rezerva n spaiul de adresare un anumit numr de adrese. Aceste adrese sunt


asociate registrelor interfeei, decodnd busul de adrese.
n acest exemplu procesorul interogheaz interfaa pn cnd aceasta
este disponibil. Aceast tehnic se numete polling. Este posibil, ns, s fie
scutit procesorul de aceast sarcin , autoriznd interfaa s-i semnaleze
singur disponibilitatea.
Dac se complic puin problema, putem presupune c interfaa
trebuie s poat de asemenea s primeasc un octet de la procesor pentru
transmisie la periferic. Registrul STATUS trebuie s conin atunci i un alt
bit, pentru a semnala c interfaa a terminat transmisia precedent i este
deci gata s primeasc un nou octet. i sensul transmisiei trebuie precizat,
deci interfaa trebuie s dispun de un semnal de intrare RD/WR
(READ/WRITE). n sfrit, procesorul trebuie s semnaleze interfeei n ce
moment a scris octetul pe busul de date, de unde un alt semnal DS (Data
Strobe). Organizarea temporal a acestor diverse semnale face parte din
protocolul busului, aa cum se va arta mai departe.
Procesor de I/E.
ntr-o main monoprocesor, operaiile I/E sunt, n ultim instan,
controlate de UC. Prima problem este de a ti la ce nivel se face acest
control. UC face controlul fin al acestor operaii sau deleg aceast sarcin
operatorilor sau procesoarelor specializate? Conexiunea direct dat mai sus
este un exemplu al primei soluii. ns tendina constant este de a delega ct
mai multe funcionaliti unor procesoare specializate, altele dect cel
principal. Din acest punct de vedere se pot distinge dou tipuri de
funcionaliti:-.
-procesri specializate foarte legate de I/E, ca postscripturile i
procesrile grafice;
-procesrile de transferuri de date pure, ca ,de exemplu, lectura unei
pagini de disc.

4.2.5. Instruciuni de I/E


Setul de instruciuni la nivel ISA (Instructions Set Architecture) este
complet diferit de setul de instruciuni la nivelul microarhitecturii. Att
operaiile care pot fi efectuate ct i formatele instruciunilor sunt diferite la
cele dou niveluri. Existena ocazional a unui mic numr de instruciuni
identice pentru cele dou niveluri este absolut ntmpltoare.
Dimpotriv, setul de instruciuni la nivel OSM conine cea mai mare
parte din instruciunile nivelului ISA, la care se adaug cteva noi

126

Sorin Adrian Ciureanu

instruciuni i din care se elimin cteva instruciuni considerate periculoase.


Cele dou niveluri difer considerabil mai ales n zona de instruciuni I/E.
Explicaia este c un utilizator care ar putea s execute direct instruciuni de
I/E la nivel ISA ar putea citi date confideniale memorate oriunde n sistem.
Pe de alt parte programatorii normali nu doresc s utilizeze instruciuni I/E
la nivel ISA deoarece procedeul este greoi i complex.
4.2.5.1. Fiiere
Instruciunile virtuale I/E pot fi utilizate folosind o abstracie numit
fiier care const dintr-o secven de octei scrii la un dispozitiv de I/E.
Dac dispozitivul I/E este unul de memorare ( de ex. un disc), fiierul poate
fi citit i la un moment ulterior; dac dispozitivul nu este de memorare, (de
ex. o imprimant), evident fiierul nu mai poate fi citit ulterior.
Un disc poate conine mai multe fiiere, fiecare cu un tip particular
de date. Fiierele diferite pot avea lungimi diferite, precum i alte
proprieti. Abstractizarea unui fiier permite ca operaiile I/E virtuale s fie
organizate ntr-un mod mai simplu.
Pentru sistemul de operare, un fiier este doar o secven de octei.
Prin definiie , fiierul este:
-unitatea logic de stocare a informaiei;
-o colecie de informaii definit de creatorul ei;
-o colecie de informaii mapate pe perifericele fizice.
Pentru fiiere, operaiile de intrare/ieire sunt realizate prin apeluri
sistem de deschidere, citire, scriere i nchidere a fiierului.
Odat ce fiierul a fost deschis, se poate citi din el. Apelul sistem
read trebuie s conin cel puin urmtorii parametri:
-un indicator ctre fiierul deschis din care urmeaz s se citeasc;
-o referin ctre o memorie tampon n care vor fi puse datele;
-numrul de octei care vor fi citii.
Apelul read transfer datele cerute n memoria tampon. n mod
normal el ntoarce totalul de octei citii efectiv care poate fi mai mic dect
numrul cerut. Fiecare fiier deschis are asociat un indicator care indic
octetul ce urmeaz a fi citit. Dup un apel read acesta este avansat cu
numrul de octei citii, astfel nct apeluri read consecutive vor citi blocuri
de date consecutive din fiier. Cnd un program a terminat de citit dintr-un
fiier, l poate nchide, pentru a informa sistemul de operare c nu l va mai

Arhitectura calculatoarelor

127

folosi, permind sistemului de operare s dealoce zona din tabela folosit


pentru a pstra informaii despre fiierul respectiv.
Pentru calculatoarele foarte mari, un fiier poate fi o secven de
nregistrri logice (logical records) , fiecare cu o structur bine definit.
Unele sisteme fac diferena ntre fiiere cu nregistrri cu structur diferit i
cele cu nregistrri cu aceiai structur.
Instruciunea virtual de baz citete urmtoarea nregistrare din
fiierul specificat i o pune n memoria principal, ncepnd de la adresa
specificat (fig.4.7.). Pentru a realiza aceast operaie, instruciunea virtual
trebuie informat din ce fiier s citeasc i unde s pun nregistrarea n
memorie. Adesea exist posibilitatea citirii unei anumite nregistrri,
specificate fie prin poziia sa n fiier, fie prin cheia sa.
Numrul
nregistrrii
logice

14
15
16
17

Urmtoarea
nregistrare
logic ce
urmeaz a fi
citit

18
19
20
21
22
a)

Memoria
principal
nregistrarea
logic 18

Zon
tampon

23
24
25

Numrul
nregistrrii
logice

15
16
17
18

Urmtoarea
nregistrare
logic ce
urmeaz a fi
citit

19
20
21
22
23
24
25

Memoria
principal
nregistrarea
logic 18

Zon
tampon

128

Sorin Adrian Ciureanu


b)

Fig. 4.7. Citirea dintr-un fiier organizat pe nregistrri logice.


a)nainte de citirea nregistrrii. b)Dup citirea nregistrrii.
Instruciunea virtual de ieire scrie o nregistrare logic din
memorie ntr-un fiier. Instruciuni write consecutive produc nregistrri
logice consecutive n fiier.
4.2.5.2. Implementarea instruciunilor virtuale de I/E
n organizarea i memorarea fiierelor, o problem de care trebuie s
in seama toate sistemele de fiiere este alocarea de spaiu. Unitatea de
alocare poate fi un singur sector dar cel mai adesea const ntr-un bloc de
sectoare consecutive.

Fig.4.8. Strategii de alocare pentru discuri. (a)Fiier memorat pe


sectoare consecutive. (b)Fiier memorat n sectoare neconsecutive.

Arhitectura calculatoarelor

129

n modul de memorare a fiierelor se pot utiliza uniti de alocare


consecutive sau nu. Figura 4.8. ilustreaz un disc simplu, cu o singur fa,
coninnd cinci piste cu 12 sectoare fiecare. Figura 4.8.a. prezint o schem
de alocare n care sectorul este unitatea de alocare i n care un fiier const
din sectoare consecutive. Alocarea consecutiv a blocurilor fiierelor este n
mod curent folosit la CD-ROM-uri. Figura 4.8.b. prezint o schem de
alocare n care sectorul este unitatea principal de alocare a spaiului dar n
care un fiier nu trebuie s ocupe obligatoriu sectoare consecutive. Aceast
schem este modelul standard pentru hard discuri.
Exist o diferen important ntre modurile n care aplicaia
programatorului i sistemul de operare vd un fiier. Programatorul vede
fiierul ca o secven liniar de octei sau nregistrri logice. Sistemul de
operare vede fiierul ca o colecie ordonat de uniti de alocare pe disc, nu
neaprat consecutive.
Pentru ca sistemul de operare s poat transfera la cerere octetul sau
nregistrarea logic n dintr-un fiier, trebuie s existe o metod de localizare
a datelor. Dac fiierul este alocat secvenial, sistemul de operare are nevoie
s tie doar adresa de nceput a fiierului pentru a calcula adresa octetului
sau nregistrrii logice necesare. Dac fiierul nu este alocat consecutiv, nu
este posibil s se calculeze adresa ntr-un fiier oarecare avnd doar adresa
de start a fiierului. Pentru localizare este necesar o tabel numit indexul
fiierului (file index) care furnizeaz lista unitilor de alocare i adresele
lor efective pe disc. Indexul fiierului poate fi organizat fie ca o list a
adreselor blocurilor pe disc (folosit n UNIX), fie ca o list de nregistrri
logice care furnizeaz adresa pe disc i deplasamentul pentru fiecare. Uneori
fiecare nregistrare logic are o cheie (key) i programele pot adresa o
nregistrare folosind cheia sa, n locul numrului nregistrrii logice. n acest
caz, o a doua organizare este necesar, fiecare intrare coninnd pe lng
poziia nregistrrii i cheia sa. Aceast organizare este specific
calculatoarelor foarte mari.
Modul de alocare consecutiv ofer o administrare mai simpl a
blocurilor dar, atunci cnd dimensiunea maxim a fiierelor nu este
cunoscut n prealabil, aceast tehnic poate fi folosit foarte rar. Dac un
fiier ncepe n sectorul j i poate crete n sectoare consecutive, s-ar putea
ca la sectorul k s e loveasc de un alt fiier i s nu aib loc unde s se
extind. Dac fiierul nu este alocat consecutiv aceast problem nu apare,
deoarece blocurile succesive pot fi memorate oriunde pe disc. Dac discul
conine cteva fiiere care se extind, fr ca dimensiunea final a lor s fie

130

Sorin Adrian Ciureanu

cunoscut, memorarea lor ca fiiere consecutive este imposibil. Mutarea


unui fiier existent este uneori posibil dar ntotdeauna costisitoare.
Dac dimensiunea maxim a tuturor fiierelor este cunoscut n
prealabil, ca n cazul nregistrrii unui CD-ROM, programul care face
scrierea poate prealoca pentru fiecare fiier un numr de sectoare exact egal
cu dimensiunea fiecrui fiier. Gsirea fiecrui fiier este simpl, cnd
primul sector al fiierului este cunoscut.
Pentru a aloca spaiu pe disc unui fiier, sistemul de operare trebuie
s in seama de blocurile disponibile, precum i de cele folosite pentru
memorarea altor fiiere. Pentru un CD-ROM calculul este fcut odat, la
nceput, dar pentru un hard disc fiierele apar i dispar frecvent. O metod
const n meninerea unei liste a tuturor spaiilor disponibile, un spaiu
disponibil fiind orice numr de uniti de alocare contigue. Figura 4.9 a.
ilustreaz lista spaiilor disponibile (free list) pentru discul din figura
4.8.b. Metoda alternativ este meninerea unei hri de bii, cu un bit pe
unitate de alocare, ca n figura 4.9.b. Un bit 1 indic o unitate de alocare
alocat iar un bit 0 indic faptul c este disponibil.
Pist

Sector

0
0
1
1
2
2
2
3
3
4

0
6
0
11
1
3
7
0
9
3

(a)

Numr de
sectoare
din
spaiul
disponibil
5
6
10
1
1
3
5
3
3
8

Pist
0
1
2
3
4

0
0
0
1
0
1

1
0
0
0
0
1

2
0
0
1
0
1

3
0
0
0
1
0

4
0
0
0
1
0

Sector
5 6
1 0
0 0
0 1
1 1
0 0

7
0
0
0
1
0

8
0
0
0
1
0

9
0
0
0
0
0

10
0
1
0
0
0

11
0
0
0
0
0

(b)

Fig. 4.9 Dou moduri pentru meninerea evidenei sectoarelor


disponibile.(a)List a spaiilor disponibile. (b)Hart de bii.
Prima metod are avantajul gsirii cu uurin a unui spaiu
disponibil de lungime dat dar i dezavantajul unei lungimi variabile. Cnd
fiierele sunt create i distruse, lungimea listei variaz ceea ce este neplcut
Harta de bii are avantajul de a avea o lungime constant. n plus,
schimbarea statutului unei uniti de alocare de la disponibil la alocat

Arhitectura calculatoarelor

131

necesit modificarea unui singur bit. Totui, gsirea unui bloc cu o


dimensiune dat este dificil. Ambele metode necesit actualizarea listei sau
tabelei de alocare cnd un fiier de pe disc este alocat sau modificat.
Dimensiunea unei uniti de alocare este determinat de mai muli
factori. n primul rnd, timpul de acces i ntrzierea de rotaie controleaz
accesul la disc. Presupunnd 10ms timpul de poziionare la nceputul unei
uniti de alocare, este mult mai bine s citim cte 8KB (aproximativ 1ms)
dect cte 1 KB (aproximativ 0,125ms), innd seama de faptul c citirea a
8KB ca opt uniti de 1KB va necesita opt accese la disc. Aceast
eficientizare a transferului este un argument pentru uniti de alocare mari.
Un alt argument pentru alegerea unitilor de alocare mari este i
faptul c folosirea lor conduce la mai puine uniti i astfel sunt necesare
mai mici i mai puine fiiere index sau liste nlnuite n memorie.
Totui, dac unitatea de alocare este mare, se pierde mai mult spaiu
atunci cnd nu este ocupat total de un fiier. Cu ct unitile de alocare sunt
mai mari, cu att spaiul mediu pierdut va fi mai mare, ajungndu-se uneori
s se piard jumtate din spaiul de alocat. Unitile mici sunt preferabile din
punct de vedere al eficienei memoriei
n prezent eficiena transferului tinde s fie factorul cel mai
important astfel c dimensiunea blocurilor tinde s creasc.
4.2.5.3.Instruciuni pentru gestiunea cataloagelor
Informaia on-line, adic cea direct accesibil calculatorului, fr s
fie necesar intervenia uman, este memorat n fiiere, fiind accesibil
programelor prin intermediul instruciunilor I/E. Informaia off-line necesit
intervenie uman nainte de a putea fi accesat de calculator (ex. CDROM).
Sunt ns necesare instruciuni suplimentare pentru gestionarea
informaiei memorate on-line, pentru colectarea ei n uniti convenabile i
protecie mpotriva folosirii neautorizate.
Modul obinuit de organizare a fiierelor on-line este gruparea lor n
cataloage (directories). Figura 4.10 prezint un exemplu de organizare a
cataloagelor. Sunt disponibile apeluri sistem pentru cel puin urmtoarele
funcii:
-crearea unui fiier i includerea sa ntr-un catalog;
-tergerea unui fiier dintr-un catalog;
-redenumirea unui fiier;

132

Sorin Adrian Ciureanu


-modificarea atributelor de protecie (protection status) ale unui

fiier.
Exist mai multe scheme de protecie. O posibilitate este ca
proprietarul s specifice o parol secret pentru fiecare fiier. Cnd ncearc
accesul la un fiier, un program trebuie s furnizeze parola pe care sistemul
de operare o valideaz nainte de a permite accesul. Alt metod este ca
proprietarul s ofere o list cu persoanele ale cror programe pot accesa
fiierul .
Toate sistemele de operare permit utilizatorilor s lucreze cu mai
mult de un catalog de fiiere. Fiecare catalog este n mod normal tot un
fiier, astfel nct poate fi inclus ntr-un alt catalog, ceea ce duce la apariia
unui arbore de cataloage. Existena mai multor cataloage este util n mod
special pentru programatorii care lucreaz la mai multe proiecte. Ei pot
grupa toate fiierele care aparin unui proiect ntr-un catalog. Cataloagele
sunt de asemenea un mod de partajare a fiierelor ntre membrii unui grup.
Fiier 0
Fiier 1
Fiier 2
Fiier 3
Fiier 4
Fiier 5
Fiier 6
Fiier 7
Fiier 8
Fiier 9
Fiier 10

Nume fiier:
Lungime:
Tip:
Data crerii:
Ultimul acces:
Ultima modificare:
Numrul total de accese:
Bloc 0 Pista 4 Sector 6
Bloc 1 Pista 19 Sector 9
Bloc 2 Pista 11 Sector 2
Bloc 3 Pista 77 Sector 0

(a)
(b)
Fig.4.10.(a)Catalogul unui utilizator. (b)Coninutul unei intrri ntr-un
catalog.

4.3. PROCESAREA INTRRILOR/IEIRILOR


Cele dou tehnici fundamentale de control al transferurilor
corespund celor dou atitudini posibile ale controlerului:
-interogarea ( polling); controlerul este pasiv i ateapt ca UC s
vin s-l consulte prin lectura cuvntului de stare;
-ntreruperea; UC deleg o sarcin controlerului i continu execuia
n curs; cnd controlerul a terminat operaia de I/E, cere unitii centrale
(UC) s intervin, ceea ce ntrerupe execuia n curs.

Arhitectura calculatoarelor

133

Alegerea uneia dintre cele dou tehnici depinde de procentele de


utilizare a procesorului desemnat pentru gestiunea evenimentelor de I/E. S
considerm exemplul unui procesor de 100MHz i a trei periferice: un
maus, o dischet i un disc:
-un maus care este suficient s fie interogat de 30 ori pe secund;
sunt deci 30 evenimente pe secund;
-o dischet care transmite, prin pachete de 16 bii, cu un debit de
50KO/s; avem deci 50.103/2 = 25.103 evenimente pe secund;
-un controler de disc, care poate transmite prin 32 bii, cu un debit de
2MO/s; avem deci 2.106/4 = 5.105 evenimente pe secund.
Presupunnd c procesarea unui eveniment consum 100 cicluri
procesor, se poate calcula fraciunea din timpul procesor utilizat pentru
gestiunea direct.
30.10 2
-maus:
0,003%
100.10 6
-dischet:

25.10 5
2,5%
100.10 6

-disc:

5.10 7
50%
100.10 6

Deci, gestiunea prin polling a mausului este neglijabil, n timp ce


aceea a discului nici nu poate fi luat n consideraie.

4.3.1. Mecanismul ntreruperilor


Mecanismele materiale de interfa dedicate ntreruperilor trebuie s
permit unui controler de I/E s se semnaleze unitii centrale i s
furnizeze informaiile necesare procesrii ntreruperilor. Informaiile legate
de ntreruperi pleac de la controlerii de I/E, prin busul de I/E i busul
sistem i fac parte din protocolul busului. Prezentarea simplificat ce
urmeaz se refer la interfaarea direct dintre periferice i UC.
Recunoaterea ntreruperilor. Unul sau mai multe fire de cerere
transmit la UC cereri de ntrerupere. Sunt posibile dou organizri:
-o singur intrare de cerere extern, numit n general INT;

134

Sorin Adrian Ciureanu

-mai multe intrri care codific nivelul de prioritate al cererii.


Anumite procesoare dispun de un semnal de primire a cererii de
ntrerupere INTA, pentru a semnala interfeelor de gestiune a ntreruperilor
c a luat cunotin de cerere. Alte procesoare confirm recepia printr-o
scriere prin intermediul busurilor de adrese i de date. Pentru procesoarele
care nu au dect o singur intrare pentru cereri externe, se pune problema de
a transmite pe un singur fir cereri potenial simultane. Pe de alt parte UC
nu are mijlocul direct de a cunoate care controler de I/E a emis o cerere de
ntrerupere. Ea tie numai c exist o cerere. Aceast dubl problem poate
fi rezolvat printr-o interfa material specializat.
Interfaa material specializat (figura 4.11) este adresabil prin UC:
ea poate citi (cuvnt de stare) sau scrie (cuvnt de control) n registrele
acestei interfee.
Cererile individuale de ntrerupere ale perifericelor sunt transmise
controlerului de ntreruperi. Acesta va transmite cererea unitii centrale prin
firul de cerere INT. UC rspunde, cnd este gata s proceseze cererea,
printr-un semnal de recepie INTA.
n cazul cererilor multiple, controlerul stabilete o prioritate dup
mai multe protocoale posibile stabilite prin programarea controlerului.
Alegerea unui tip de prioritate ( prioritate fix, prioritate turnant cnd
ultimul servit devine cel mai puin prioritar etc.). depinde de natura
perifericelor: periferice cu constrngeri de timp foarte diferite sau periferice
de acelai tip.
Bus adrese

UC

INTA

Controler de
ntreruperi

INT

Bus date

Fig. 4. 11. Controler de prioritate

Cereri de
ntrerupere

Arhitectura calculatoarelor

135

Controlerul de prioritate permite i tratarea problemei rmase:


transmiterea, cnd s-a luat cunotin de cererea prin UC (INTA), a
informaiei pe perifericul care a emis cererea.
De fapt, UC are nevoie s tie adresa de debut a procedurii de tratare
a cererii. La recepia semnalului INTA, controlerul va transmite la UC, prin
busul de date, o informaie corespunztoare numrului cererii de ntrerupere
care va fi, direct sau printr-o transformare simpl, adresa memorie a
pointerului care conine adresa de debut a procedurii de tratare. Acest
mecanism se numete vectorizarea ntreruperilor. Adresele de debut ale
procedurilor de tratare constituie un vector de ntrerupere situat ntr-o zon
a memoriei,. Controlorul de ntrerupere transmite ctre UC indicele
vectorului, permind astfel s se proceseze o anumit ntrerupere.

4.3.2. ntreruperi i excepii


Vom considera problema cea mai general a situaiilor excepionale
care se refer la funcionarea normal a UC cnd aceasta execut un
program (Tabelul 4.1).
Tabelul 4.1. Situaii excepionale (ntreruperi) n timpul execuiei
unei instruciuni.
Faza unei instruciuni
Situaie excepional
Citirea instruciunii
Defect de pagin
Violarea proteciei memoriei
Acces nealiniat la memorie
Decodajul instruciunii
Cod de operaie ilegal sau
nedefinit
Acces la memorie
Defect de pagin
Violarea proteciei memoriei
Acces nealiniat la memorie
Execuia instruciunii
Eroare aritmetic
4.3.2.1. Situaii excepionale (ntreruperi)
Situaiile excepionale pot s provin de la un eveniment intern
execuiei unui program sau de la un eveniment extern, independent de
execuia programului n curs, tipic unei cereri a unui controler de I/E.
Situaiile excepionale au nume diferite, dup constructorii de maini. Se pot

136

Sorin Adrian Ciureanu

numi excepii, greeli sau ntreruperi. n continuare se va utiliza termenul


ntrerupere pentru toate aceste situaii i tratarea lor.
Situaiile interne pot proveni fie din probleme nerezolvabile , fie
dintr-o cerere a programului. n primul caz, instruciunea care provoac
excepia se numete faulting. Principalele probleme sunt date n tabelul 4.1.
Defect de pagin. Apare cnd, la un acces al memoriei, adresa
refereniat nu exist ntr-o pagin fizic prezent n memoria principal.
Trebuie deci s se iniializeze un transfer de pagin de pe disc pe memoria
principal. Dup acest transfer, execuia instruciunii faulting poate
rencepe.
Violarea proteciei memoriei. Accesul la memorie cerut nu este
autorizat conform drepturilor de acces indicate n tabela paginilor. n acest
caz, violarea proteciei memoriei este semnalat i nu se poate relua execuia
instruciunii.
Acces memorie nealiniat. Dac arhitectura material impune
aliniamentul, instruciunea care efectueaz un acces nealiniat nu poate fi
executat. Dac accesul nealiniat este permis (x86), nu este cazul unei
situaii de excepie.
Coduri operaii ilegale sau nedefinite. Cnd PC conine un cod care
nu corespunde unei instruciuni, partea de control nu poate decoda
instruciunea care este irecuperabil. Cauza cea mai frecvent, ntr-un
program compilat, este o eroare de programare care conduce contorul
programului la poantarea pe o zon de date. O situaie excepional de
acelai tip este tentativa de execuie a unei instruciuni protejate n mod
normal.
Erori aritmetice. Erorile aritmetice nu constituie n mod necesar o
situaie excepional. Ar putea fi considerate ca atare n anumite medii de
programare (opiuni de compilaie) sau apeluri de biblioteci sistem.
Generare prin
program. Programul utilizator face apel la
mecanismul de gestiune a ntreruperilor pentru a efectua sarcini particulare.
Utilizatorul cheam o procedur a sistemului de operare cu ajutorul unei
instruciuni main numit instruciune logic, de exemplu instruciunea SC
(system call) n POWER PC.
Situaiile externe sunt de asemenea de diverse feluri, de la
imposibilitatea funcionrii, pn la cererea de intervenie plecnd de la
organele externe: controlere de periferice, alte procesoare etc.
Imposibilitatea funcionrii. Tierea alimentrii sau o pan material
a UC sunt cauze de imposibilitate de funcionare. Dac pana material este
fr ieire, tierea alimentrii este o situaie excepional care poate fi

Arhitectura calculatoarelor

137

recunoscut i tratat dac maina utilizat posed memorii cu acces


aleatoriu (RAM) nevolatile. Atunci este posibil ca, n scurta perioad dintre
detectarea penei i momentul n care circuitele nu mai sunt operaionale din
cauza alimentrii insuficiente, s se execute cele cteva sute de instruciuni
pentru a salva n memoria nevolatil esenialul contextului n curs de
execuie.
Cderea UC este un caz particular de o astfel de situaie. O comand
exterioar RAZ foreaz reiniializarea UC. Totui aceast situaie este
particular pentru c nu se trateaz cauza prin mecanismul general de tratare
a ntreruperilor ci prin mecanismul specific de reiniializare, prin execuia
unei proceduri de pornire coninut ntr-o memorie ROM specific.
Cererea de intervenie extern. Este o cerere provenit din exteriorul
UC i care necesit o anumit procesare; cererile provenite de la controlerii
perifericelor pentru a gestiona intrrile/ieirile sunt un exemplu tipic. Aceste
cereri, ns, pot proveni i de la alte UC, n cazul multiprocesoarelor, i sunt
un mijloc general de dialog ntre diferii masteri.
Caracteristicile situaiilor excepionale (ntreruperilor). n tabelul
4.2. sunt date principalele caracteristici ale situaiilor excepionale.
Tab.4.2. Caracteristicile ntreruperilor.
Redemarare Sincron Mascabil
sau oprire
sau
prin
asincron utilizator
Defect de pagin
Redemarare
S
NM
Violarea memoriei
Oprire
S
NM
Acces nealineat
Oprire
S
M
Cod op. ilegal
Oprire
S
NM
Eroare aritmetic
Oprire
S
M
Appel sistem
Redemarare
S
NM
Alimentare
Oprire
A
NM
Cerere I/E
Redemarare
A
NM
Situaia

Sesizarea
n timpul
n timpul
n timpul
n timpul
n timpul
ntre
n timpul
ntre

Redemarare sau oprire. Cnd ntreruperea permite rezolvarea


problemei, instruciunea care a provocat-o este redemarat. Pentru a
permite redemararea, trebuie s fie salvat contextul programului ntrerupt i
restituit dup procesare. n cazul n care situaia excepional este
ireparabil, programul trebuie s fie oprit imediat. Totui contextul poate s
fie salvat n acest caz pentru a autoriza scrierea ntr-un fiier (CORE n

138

Sorin Adrian Ciureanu

contextul UNIX) a strii procesorului i a memoriei. Acest fiier poate fi


utilizat de reparator pentru a afla cauza erorii.
Sincron sau asincron. Cnd ntreruperea rezult din execuia unei
instruciuni a programului, ea intervine n mod sincron cu ceasul
procesorului. Din contra, va fi asincron cnd provine dintr-un eveniment
extern, total independent de ceasul procesorului.
ntrerupere mascabil sau nu de ctre utilizator. Anumite situaii
excepionale trebuiesc neaprat tratate; de exemplu un defect de pagin.
Altele ns pot fi ignorate sau tratate, la alegerea utilizatorului; este cazul
erorilor aritmetice cnd ele sunt considerate situaii excepionale.
Apariia ntreruperii ntre instruciuni sau n timpul unei
instruciuni. ntreruperile care intervin n timpul execuiei unei instruciuni
mpiedic continuarea execuiei. Cele care intervin ntre instruciuni
provoac fie o tratare pe programul n curs, fie o tratare pe o cerere
exterioar care intervine ntre dou instruciuni ale programului n curs.
4.3.2.2. Gestiunea ntreruperilor
Gestiunea ntreruperilor comport trei etape:
a)-sesizarea ntreruperii;
b)-salvarea contextului;
c)-tratarea ntreruperii.
a)-Sesizarea ntreruperilor. Este o problem foarte delicat deoarece
se pun o serie de probleme. n ce moment sunt testate cazurile posibile de
ntreruperi? Cum s se in cont de cererile exterioare asincrone n raport cu
funcionarea procesorului? Ce trebuie fcut n prezenta unor cauze multiple
a ntreruperilor? Ce prioritate trebuie definit?
Pentru un procesor fr pipeline, cauzele ntreruperilor sunt
examinate la sfritul fiecrei instruciuni. Procesorul examineaz cauzele
posibile n ordinea descresctoare a prioritii. Examinnd eventualitile de
ntreruperi la un moment precis, la sfritul instruciunii, procesorul
realizeaz o sincronizare de fapt a cererilor de I/E care intervin ntr-o
manier asincron.
Pentru un procesor cu pipeline, mai multe instruciuni se execut
simultan, deci ordinea ntreruperilor nu este n mod necesar aceeai ca aceea
a instruciunilor. Dou opiuni sunt posibile.
-Sesizarea ntreruperilor n ordinea secvenial a instruciunilor:
orice ntrerupere a unei instruciuni i este tratat naintea unei ntreruperi
produs de instruciunea i+1 . Este suficient s se testeze eventualitatea

Arhitectura calculatoarelor

139

unei ntreruperi ntr-o faz dat, ca debut al fazei de aranjare de rezultat care
nu poate provoca ntrerupere.
-Cealalt aproximaie const luarea n consideraie a ntreruperilor n
ordinea n care ele apar ceea ce nseamn c o ntrerupere legat de
instruciunea i+1 poate s fie tratat naintea ntreruperii produs de i.
Sistemul de operare trebuie s recunoasc instruciune care a ntrerupt i,
dup tratare, s redemareze instruciunea care a produs ntreruperea.
Cea mai mare parte a procesoarelor cu pipeline trateaz ntreruperile
n ordinea secvenial a instruciunilor.
Pe de alt parte, cererile externe asincrone trebuie s fie testate la
fiecare ciclu al ceasului i nu la sfritul fiecrei instruciuni.
b)-Salvarea i restituirea contextului. Dup sesizarea ntreruperii,
procesorul trebuie s salveze contextul programului ntrerupt. Problemele
principale sunt: ce trebuie salvat, cum i unde s fie salvat?
La procesoarele fr pipeline, contextul ce trebuie salvat este simplu:
el cuprinde contorul de program, starea procesorului i ansamblul de
registre ce conin informaii semnificative ale programului n curs de
execuie.
La procesoarele cu pipeline, execuia simultan a mai multor
instruciuni face dificil nghearea unei pipeline ntr-o stare precis, mai
ales innd cont de instruciunile aritmetice flotante la care partea execuie
ine mai multe cicluri. Dac procesorul permite ca instruciunile s se
termine ntr-o alt ordine fa de cea n care au nceput, problema este i mai
complicat. Exist ntreruperi precise, cnd se poate nghea starea
pipeline-ului ntr-o stare precis, astfel nct toate instruciunile dinaintea
celei care a provocat ntreruperea s fie executate pn la sfrit, iar
instruciunea care a provocat ntreruperea i cele urmtoare s fie
redemarate dac ntreruperea o permite. Exist i ntreruperi imprecise, cnd
este imposibil s se nghee pipeline-ul ntr-o stare precis, dar cnd exist
suficient informaie pentru redemararea execuiei informaiei.
ntreruperi multiple i prioritile lor. ntreruperile semnalate pot
interveni simultan sau ntr-o manier amestecat. Problema este relativ
simpl n ceea ce privete ordinea tratrii ntreruperilor ce intervin simultan,
afectnd la fiecare tip de ntrerupere o prioritate. La fiecare ciclu, procesorul
examineaz existena sau inexistena ntreruperilor, n ordinea
descresctoare a prioritilor. ntreruperea cu prioritate mai mare este tratat
nti.
Mai greu este de stabilit ce trebuie fcut n cazul n care o situaie
excepional intervine n cursul tratrii unei alte ntreruperi. Trebuie oprit

140

Sorin Adrian Ciureanu

sau nu procedura de tratare n curs? Exist diferite strategii, la diferitele


procesoare. Cea mai simpl tehnic const n dotarea procesorului cu
instruciuni de autorizarea (STI pentru Set Interrupt) i inhibarea(CLI
pentru Clear Interrupt) ntreruperilor. O tehnic mai elaborat const n
dotarea procesorului cu un anumit numr de niveluri de prioritate codate pe
un anumit numr de bii.
c)Tratarea ntreruperilor const n executarea unei proceduri
specifice, permindu-se apoi redemararea execuiei instruciunii faulting, n
cazurile cnd se permite redemararea dup tratare, sau informarea
utilizatorului, n cazurile de excepii fatale. Procedurile de tratare a
ntreruperilor (figurile 4.2 , 4.3. , 4.6.) sunt n general accesate printr-o
tabel de pointere, situat ntr-o zon definit a memoriei, rezervat
sistemului de operare i accesibil prin adresare direct. Este asociat la
fiecare cauz de ntrerupere un numr care permite accesul la o intrare a
tabelei de pointeri. Pointerii conin adresa de debut a procedurilor de tratare
a ntreruperilor.

4.4. PERIFERICE DE I/E


Clasificm perifericele n dou mari categorii:
-periferice care stocheaz informaia (memorii externe);
-periferice care nu stocheaz informaia.

4.4.1. Memorii externe


n aceast categorie intr perifericele care stocheaz informaii, cele
mai importante fiind hard discul i compact discul.
4.4.1.1. Principii fizice de stocare a datelor
n prezent se utilizeaz dou principii de stocare a datelor:
a)-principiul magnetic;
b)-principiul optic.
a)-Principiul magnetic
nregistrarea magnetic este procesul de magnetizare a unui volum
extrem de mic dintr-un material subire care capt proprietile unui
magnet permanent. Exist dou entiti care interacioneaz ntr-o
nregistrare magnetic:
-capul magnetic de scriere/citire/tergere;

Arhitectura calculatoarelor

141

-mediul magnetic, unde se stocheaz efectiv informaia.


Capul magnetic este de fapt o bobin strbtut de curent, sensul
curentului prin bobin determinnd biii 0 i 1. n mediul magnetic exist
dipoli orientai, sensul unui dipol corespunznd biilor 0 i 1.
.mediul magnetic
11000100..bii de informaie
Procesul de scriere se produce n felul urmtor: biii de 0 i 1 sunt
transmii ctre perifericul magnetic; un dispozitiv va induce pentru biii de 0
un curent de un sens iar pentru biii de 1 un curent de sens contrar.
Materialul ce trebuie magnetizat se afl n contact cu capul magnetic sau n
imediata apropiere. n funcie de sensul curentului din bobin, se induce
sensul dipolului din mediul de magnetizare.
Pentru procesul de citire, n capul magnetic se induce un curent cu
sensul n funcie de sensul dipolului, curent care va da biii 0 i 1.
Dup decenii de cercetri, cu rezultate spectaculoase n ceea ce
privete materialele feromagnetice utilizate i structura dispozitivelor,
problemele care se pun la ora actual pentru nregistrrile magnetice sunt
acelea de a obine o densitate de nregistrare ct mai mare pe mediile
magnetice i o frecven de comutare ct mai mare n capetele magnetice.
Hard discurile din prezent funcioneaz cu o densitate de
aproximativ 10 GB/inch2 dar se prevede o cretere medie destul de mare. O
problem apare: pn la ce densitate de nregistrare se va putea ajunge,
deoarece la un moment dat se poate trece n paramagnetism, adic la o stare
n care, dipolii magnetici fiind foarte apropiai, se pierd complet
caracteristicile feromagnetice. Aceast limit ar fi n jurul valorii de 40
GB/inch2 dar studii recente arat c, cel puin teoretic, ar putea fi mai mare.
n ceea ce privete capetele magnetice, acestea sunt mai n urm, n
sensul c nu exist nc capete magnetice care s fac fa actualelor
densiti obinute.
b)Principiul optic
Mediul n care se pstreaz informaia const dintr-un material n
care exist caviti i soluri depuse pe un substrat policarbonic de pe un
disc, cavitile avnd adncimi diferite de ale solurilor. Pentru a citi aceste
informaii, o diod laser de mic intensitate trimite unde infraroii care vor
fi reflectate sub unghiuri diferite de ctre caviti i soluri. Un detector de
unghi va transforma aceste semnale n semnale de 0 i 1. Tranziia
cavitate/sol va fi un semnal 1 i absena acestei tranziii va fi un semnal 0.
Cavitile i solurile sunt inscripionate ntr-o spiral continu, pornind din
centrul i pn la marginea discului.

142

Sorin Adrian Ciureanu

Fig.4.12. Principiul nregistrrii optice a informaiei. Variaia unghiului


de reflexie la tranziia cavitate/sol.
Pentru a realiza variaia de reflexivitate, se utilizeaz mai multe
tehnici. Una dintre ele utilizeaz o pelicul transparent aplicat pe un strat
de aur. n starea iniial pelicula este transparent i las raza laser s treac
i s se reflecte pe stratul de aur. Pentru a efectua operaii de nscriere a
datelor, se utilizeaz o diod laser de mare putere ( 8-16 mW). Cnd se face
nscrierea, dioda de mare putere va emite un fascicul care lovete un punct
de pelicul. Aceasta se ncinge i se distruge o legtur chimic ceea ce
determin apariia unui punct ntunecat. La citire, dioda de mic putere (0,5
mW) emite un fascicul care va fi reflectat numai de zona nears.
Fotodetectorul va sesiza diferena dintre zonele ntunecate, n care pelicula a
fost distrus, i zonele transparente, n care pelicula este intact. Aceast
diferen dintre unghiurile de reflexie este interpretat ca i diferena ntre
caviti i soluri.
4.4.1.2. Hard discuri
Un hard disc (disc dur) folosete principiul magnetic de stocare i
este constituit dintr-un ansamblu de suprafee discoidale care se rotesc n
jurul unei axe de rotaie. Fiecare suprafa este divizat n piste concentrice
i fiecare pist este mprit n sectoare.
Unitatea de scriere/citire este sectorul.
Prile principale ale unui hard disc (figura 4. 13) sunt:
-platanele cu discuri;
-cruciorul cu capete de scriere/citire;
-motorul care rotete platanul cu discuri;
-motorul pas cu pas pentru cruciorul cu capete.

Arhitectura calculatoarelor

143

Trecerea de pe o pist pe alta se poate face cu capete fixe sau mobile.


n sistemul cu capete fixe, exist un cap de citire/scriere deasupra fiecrei
piste; trecerea de la o pist la alta se face prin comutare electronic.
Orice disc, este mprit n piste concentrice; pistele k de pe toate
discurile formeaz un cilindru virtual, cilindrul k. La un moment dat este
activ un singur cap care trebuie s se poziioneze pe un anumit cilindru i
aici, pe un anumit sector.
Cruciorul cu capete primete comenzi de poziionare pentru un
anumit cilindru iar un cap selectat va citi/scrie de pe un anumit sector
aparinnd cilindrului k.
Elementele unui hard disc sunt: cap, cilindru, sector.
Elementul informaional fizic de baz este sectorul. Un sector are n
componena sa o zon de adrese i una de date (informaional):
-zona de adrese (adrese se cap, de cilindru , de sector);
-zona de informaii.
Adres
cap

Adres
cilindru

Adres
sector

Zon de informaie

Zona de date este de lungime fizic ce depinde de firma


productoare. Exist hard discuri cu 512 octei/sector, cu 140 octei/sector,
2 KO/sector etc.
Zona de adrese (cap, cilindru sector) se scrie cu formatarea lowlewel care, la ora actual, se face n firma productoare.
Acesta este nivelul fizic al structurii unui hard disc. Structura sa
logic este dependent de sistemul de operare care vede hard discul format
numai din blocuri. Un bloc are mai multe sectoare.

cap 7
cap 6

Motor pas
cu pas
pentru
cruciorul
cu capete

cap 5
cap 4
cap 3
cap 2

Crucior cu
capete

Motor de rotaie a
platanelor

144

Sorin Adrian Ciureanu


cap1
cap 0

Fig. 4.13. Hard disc cu 4 platane.


Exist o serie de caracteristici care indic performanele uni hard
disc:
-timpul mediu de cutare, adic timpul, calculat statistic pentru piste
alese aleatoriu, de comutare de pe cilindrul i pe cilindrul j; actualii timpi de
cutare au valori n jur de 1ms;
-latena de rotaie care este timpul necesar rotirii platanului, astfel
nct sectorul dorit s ajung sub cap; exist viteze de rotaie de 3600, 5400,
7200, 10800 rotaii/minut iar latena de rotaie medie este de cteva
milisecunde;
-densitatea biilor care poate fi densitate liniar i densitate
radial; densitatea liniar, de-a lungul circumferinei pistei, este diferit de
cea radial; un bit este aproximativ 50 de ori mai mare n direcie radial
dect n lungul circumferinei; discurile actuale au 50000-100000 bii/cm;
-timpul de transfer care este timpul total necesar ajungerii
informaiei de la disc la calculator; timpul de transfer depinde de densitatea
liniar i de viteza de rotaie.
Din punct de vedere al interfeelor i al modului de organizare,
exist urmtoarele feluri de discuri:
a)-discuri IDE /EIDE ;
b)-discuri SCSI;
c)-discuri RAID.
a)-Discurile IDE (Integrated Drive Electronics) sunt caracteristice
pentru primele calculatoare PC i erau tributare unor anumite tipuri de hard
discuri, cu un anumit numr de cilindri, capete, sectoare.
Discurile EIDE (Extendet IDE) corespundeau unor hard discuri cu
performane superioare. Fa de IDE se aduceau urmtoarele mbuntiri:
-se utiliza o schem de adresare i la nivel logic, de bloc;

Arhitectura calculatoarelor

145

-se puteau controla patru discuri pe aceeai fa;


-aveau o rat de transfer crescut;
-aveau posibilitatea de a accesa i CD-ROM-uri.
b) Discurile SCSI (Small Computer System Interface) se deosebesc
de cele IDE/EIDE prin dou lucruri:
-rate de transfer mult mai mari;
-o interfa diferit.
Practic SCSI este mai mult dect o interfa, este chiar o magistral.
Pe aceast magistral se pot conecta pn la 7 dispozitive (hard discuri,
CD.ROM-uri, DVD-uri, streamere, scanere etc.). Fiecare dispozitiv are un
identificator unic, de la 0 la 7, i 2 conectori, unul pentru intrare i unul
pentru ieire. Ieirea unui dispozitiv este conectat prin cabluri cu intrarea
urmtorului, n serie. Controlerele i perifericele SCSI pot lucra fie ca
iniiatori, fie ca inte. Controlerul acioneaz drept iniiator i trimite
comenzi perifericelor care se comport ca nite inte. Aceste comenzi se
transmit sub form de blocuri. Comenzile apar n faze, permind tuturor
dispozitivelor s ruleze n acelai timp. Acest lucru e posibil datorit
existenei unui arbitru de magistral, cnd mai multe periferice acceseaz
magistrala. ntre timp SCSI-2 i , mai recent, SCSI-3 au nlocuit vechiul
standard SCSI-1.
c) Discurile RAID (Redundant Array of Independent Disks =
mulime redundant de discuri independente) sunt alctuite dup o idee a lui
Patterson, din 1988, care sugereaz o prelucrare paralel de I/E dup
modelul de arhitectur paralel utilizat la procesoare. Discurile RAID au
urmtoarele proprieti:
-sunt vzute de ctre soft ca un singur disc virtual;
-datele sunt distribuite pe discuri n aa fel ca s se permit operarea
lor n paralel;
-sunt organizate pe nivele, dar nu nivel n sensul ierarhic, ci un nivel
semnificnd un mod de organizare posibil; exist 6 nivele, adic 6 moduri
de organizare posibile.
Nivelul 0
n aceast form de organizare, un disc RAID este mprit n mai
multe benzi, iar o band are k sectoare.
Banda 0 este alctuit din sectoarele 0 (k-1)
Banda 4 este alctuit din sectoarele k (2k-1)
Banda 8 este alctuit din sectoarele 2k (3k-1)
Se scriu benzi consecutive pe discuri. Pentru 4 discuri, organizarea
este cea din figura 4.14.

146

Sorin Adrian Ciureanu

Banda 0

Banda 1

Banda 2

Banda 3

Banda 4

Banda 5

Banda 6

Banda 7

Banda 8

Banda 9

Banda 10
10

Banda 11

Fig. 4.14. RAID de nivelul 0.


Distribuirea datelor pe mai multe discuri n acest mod se numete
STRIPING. De exemplu, dac se dorete citirea unui bloc format din 4
benzi consecutive, ncepnd de la o margine a benzii, atunci aceast citire va
fi executat n paralel, de 4 citiri separate, una pentru fiecare din cele 4
discuri. RAID-ul pe nivel 0 funcioneaz mai bine dac numrul de cereri
este foarte mare i funcioneaz foarte prost dac numrul de cereri este mic.
Dac se cere citirea unui sector, atunci practic nu mai exist paralelism i
performanele sunt rele. De asemenea RAID-ul pe nivel 0 prezint
dezavantajul unei sigurane n exploatare ceva mai sczut.
Nivelul 1
Pe nivelul 1, toate discurile sunt duplicate, adic fiecare are o copie
de siguran.
n figura 4.15. este dat un RAID de nivelul 1 cu 4 discuri normale i
4 duplicate.
La o scriere, fiecare band este scris de dou ori. La citire se poate
utiliza oricare dintre copii, distribuind ncrcarea pe mai multe discuri. Deci,
la scriere, performanele sunt la fel cu cele de pe nivelul 0. La citire
performanele, ns, pot fi i de dou ori mai bune. Acest nivel, utiliznd
copii de siguran, mbuntete mult tolerana la defecte.

Banda 0

Banda 1

Banda 2

Banda 3

Banda 4

Banda 5

Banda 6

Banda 7

Banda 8

Banda 9

Banda 10
10

Banda 11

Banda 0

Banda 1

Banda 2

Banda 3

Banda 4

Banda 5

Banda 6

Banda 7

Banda 8

Banda 9

Banda 10
10

Banda 11

147

Arhitectura calculatoarelor

Fig. 4.15. RAID de nivel 1.


Nivelele 2 i 3
Dac pe nivelele 0 i 1 se lucra pe baz de benzi de sectoare, pe
nivelele 2 i 3 se lucreaz pe baz de cuvinte sau octei. Un disc pe nivelul
2 poate lucra cu coduri Haning detectoare de erori iar cele de pe nivelul 3 cu
paritate la fiecare grup.
BM1

BM2

BM3

BM4

BM5

BM6

BM7

Fig. 4.16. RAID de nivelul 2.


BM2

BM1

BM3

BM parity

Fig. 4.17. RAID de nivelul 3.


Nivelele 4 i 5
Se lucreaz cu benzi de sectoare. Pe nivelul 4 se fac scrieri/citiri
independente iar pe nivelul 5 informaia de paritate este mprtiat pe toate
discurile.
4.3.1.3. CD-ROM -uri
Etichet tiprit

CD-ROM-urile (Compact
- Read Only Memory) Punct
utilizeaz
Strat de lacDisc
protector
ntunecat
principiul optic de stocare a informaiei. Ele au o densitate de nregistrare
Strat reflectorizant de aur
ars de
mult mai mare dect discurile
magnetice dar sunt mai puin rapide
laser dect
1,2mm
Strat de vopsea
discurile magnetice.
Timpul de cutare fiind de cteva sute de milisecunde,
Strat
de policarbonat
ele nu intr n
aceeai
categorie de performan ca discurile magnetice.
Direcia de micare

Fotodetector

Lentile

Prizm

Diod cu laser
n infrarou

148

Sorin Adrian Ciureanu

Fig. 4.18. Seciune transversal printr-un disc i laser.


Prima generaie de discuri optice a fost inventat de firma PHILIPS
care stoca filme. Diferite standarde ce au aprut ulterior au fost ncadrate n:
-Cartea Roie;
-Cartea Galben;
-Cartea Verde.
Cartea Roie reprezint standardul pentru primele CD-uri produse de
firmele PHILIPS i SONY. Scopul crerii Crii Roii a fost de a oferi un
standard pentru productorii de Compact Discuri muzicale. Toate CD-urile
aveau diametrul de 120 mm, grosimea de 1,2 mm i o perforaie de diametru
15mm la mijloc.
Cartea galben a fost publicat n 1984 tot de firmele PHILIPS i
SONY i cuprindea un standard al datelor numerice. Formatul de baz
consta n codificarea fiecrui octet cu un simbol de 14 bii. Aceast
coresponden de 14 la 8 este implementat hard prin cutare ntr-o tabel.
La urmtorul nivel, un grup de 42 simboluri consecutive formeaz un cadru
de 558 bii. Fiecare cadru are 192 de bii, ceilali care mai rmn sunt
utilizai pentru corecia erorilor.

Arhitectura calculatoarelor

149

Pn aici schema este identic att pentru CD-uri ct i pentru CDROM-uri.


Cartea galben definete dou moduri:
-Modul 1 are n structur un preambul de 16 octei, 2048 octei de
date i 288 octei pentru un cod de erori (este un cod Reed Solomon dublu
intreesut).
-Modul 2 combin cmpurile de date i ECC ntr-un singur cmp,
pentru aplicaiile audio i video care nu necesit corecia erorilor. Sunt
utilizate trei moduri de corecie a erorilor, n mod separat:
-pentru un simbol;
-pentru un cadru;
-pentru un sector.
n ceea ce privete viteza, CD-urile cu o singur vitez lucreaz cu
75 sectoare / secund, CD-urile cu dou viteze sunt de dou ori mai rapide
.a.m.d.
Cartea verde a fost creat n 1986 de concernul PHILIPS i are ca
nouti posibiliti de a ntreese audio, video i date n acelai sector, deci
un standard foarte bun pentru CD-urile multi medii.
Cartea verde a creat i un nou sistem de fiiere denumit HICH
SIERRA. Acesta are 3 niveluri:
-nivelul 1 utilizeaz nume de fiiere de pn la 8 caractere, cu o
posibil extensie de 3 caractere, la fel ca n convenia MS-DOS; acest nivel
implementeaz fiierele n mod contiguu, ceea ce pentru CD-urile
inscripionate o singur dat nu este o problem;
-nivelul 2 permite nume de pn la 32 caractere;
-nivelul 3 permite nume foarte lungi i este implementat n mod
discontiguu.
Compact-Discurile pot fi:
a)-inscripionabile
b)-reiscripionabile.
a)- Compact Discuri inscripionabile
Iniial producerea unui CD-ROM master era foarte scump. La
nceputul anilor 90 CD-ROM-urile au devenit ieftine, dar nc inferioare
discurilor magnetice, deoarece odat scrise nu mai puteau fi terse. n ciuda
acestei limitri, CD-urile inscripionabile o singur dat i-au gsit
aplicaiile ca mediu pentru copiile de siguran a discurilor mari i s-au
produs pe scar mare pentru diferite nregistrri. Aceste compact discuri se
numesc CD-R (CD-Recordables) sau n romnete CD-uri
inscripionabile. CD-R-urile sunt discuri goale de policarbonai, de 120

150

Sorin Adrian Ciureanu

mm i sunt identice cu CD-ROM-urile cu excepia faptului c au un an de


0,6 mm pentru a ghida laserul la scriere. anul are un traseu sinusoidal de
0,3 mm la o frecven de exact 22,05 kHz pentru a furniza o reacie
continu, astfel nct viteza de rotaie s fie monitorizat exact i corectat
dac este nevoie. CD-R-urile arat la fel ca CD-ROM-urile, doar c sunt
aurii i nu argintii. Culoarea aurie provine de la faptul c stratul
reflectorizant este de aur adevrat i nu de aluminiu. Spre deosebire de CDurile argintii care au depresiuni fizice pe ele, reflectivitatea diferit a
cavitilor i solurilor trebuie simulat. Acest lucru se obine prin adugare
unui strat de vopsea ntre policarbonat i stratul reflectorizant de aur (Fig.
4.18). Sunt folosite dou tipuri de vopsea cianina care este verde i
ftalocianina care este galben-portocalie. n stare iniial vopseaua este
transparent i las s treac raza laser i s se reflecte pe stratul de aur.
Pentru scriere laserul este pornit la putere mare (8-16 mW). Cnd fasciculul
lovete un punct din vopsea, acesta se distruge, distrugndu-se o legtur
chimic. Aceast schimbare a structurii moleculare determin apariia unui
punct ntunecat. La citire fotodetectorul sesizeaz diferena ntre zonele
ntunecate i cele transparente. Aceast diferen este interpretat drept
diferena ntre caviti i soluri, chiar la citirea cu un cititor obinuit de CDROM-uri sau chiar pe un player de CD-uri audio.
n 1989 a aprut cartea portocalie (Orange Book) care definete CDROM-ul i un nou format, CD-ROM XA, care permite CD-R-urilor s fie
scrise incrementat, azi cteva sectoare, mine cteva i luna viitoare cteva.
Un grup de sectoare consecutive scrise odat se numete pist CD-ROM
(CD-ROM track). Scrierea incrementat ridic o nou problem. naintea
crii portocalii, toate CD-ROM-urile aveau la nceput o singur tabel de
coninut a volumului (VTOC,Volume Table of Contents). Pentru mai
multe piste, Cartea Portocalie cere cte un VTOC pentru fiecare pist.
Pistele se pot grupa n sesiuni obinndu-se CD-uri multisesiune
(multisesion). Dispozitivele de redare standard pentru audio nu pot reda
astfel de CD-uri deoarece ele ateapt o singur VTOC la nceput. Fiecare
pist trebuie s fie scris ntr-o singur operaie continu, fr oprire. n
consecin hard discul de pe care se copiaz datele trebuie s fie suficient de
rapid ca s le livreze la timp. Dac fiierele care trebuie copiate sunt
mprtiate pe tot hard discul, atunci timpii de cutare pot provoca
ntreruperea fluxului de date ctre CD-R i eroare de memorie temporar
(memorie tampon); CR-R-ul este distrus. CD-R- urile fac posibil copierea
uoar a CD-ROM-urilor (i CD-urilor audio) ducnd adesea la violarea
copyright-ului. Diverse scheme ncearc s ngreuieze astfel de piraterii i s

Arhitectura calculatoarelor

151

fac dificil citirea unui CD-ROM cu altceva dect software-ul


productorului. Una din ele const n nregistrarea tuturor lungimilor
fiierelor de pe CD-ROM ca fiind de mai muli gigaoctei, zpcind orice
ncercare de copiere de pe hard disc cu programele uzuale de copiere. Alte
posibiliti sunt folosirea unor distane nestandard ntre piste sau alte
defecte fizice.
b)- CD-uri reinscripionabile.
CD-urile reinscripionabile (CD-RW, CD-ReWritables) folosesc
acelai suport ca i CD-R cu deosebirea c n loc de vopselele cianin i
ftalocianin utilizeaz pentru stratul reflectorizant un aliaj de argint, indium,
antimonium i telur. Acest aliaj are dou stri stabile, cristalin i amorf, cu
reflectiviti diferite. Pentru CD-RW sunt necesare lasere de trei puteri
diferite. La putere nalt, laserul topete aliajul, transformndu-l din starea
cristalin, puternic reflectorizant, n starea amorf, cu reflectivitate sczut,
pentru a reprezenta o cavitate. La putere medie, aliajul se topete i trece
din nou n starea lui natural cristalin, redevenind sol. La putere joas,
pentru citire, se percepe starea materialului i nu are loc nici o schimbare de
faz. CD-RW este mult mai scump dect CD-R, de aceea nu l-a nlocuit
complet pe acesta din urm. Pe de alt parte pentru copiile de siguran ale
discurilor dure, faptul c odat scris un CD-R nu mai poate fi ters
accidental reprezint un mare avantaj.
4.4.1.4. DVD-uri
Progresul tehnologiei a fcut posibil crearea de discuri optice de
foarte mare capacitate. Ele s-au numit iniial Disc Video Digital (Digital
Video Disc), DVD. Denumirea oficial actual este Disc Versatil Digital
(Digital Versatil Disc), tot DVD. DVD-urile au acelai proiect ca i CDurile. mbuntirile constau n:
-caviti mai mici (0,4 microni fa de 0,8 microni pentru CD-uri);
-spirala mai strns (o,76 microni fa de 1.6 microni pentru CD-uri)
-un laser rou (la o,65 microni fa de 0,78 microni pentru CD-uri).
n felul acesta s-a ajuns la o capacitate mrit de apte ori, la 4,7 GB. De
asemenea un DVD funcioneaz la 1,4MB/secund, fa de 150KB/secund
la CD-uri. Un dezavantaj este folosirea laserului rou. Pentru citirea CDurilor i CD-ROM-urile existente va fi nevoie de un al doilea laser sau o
conversie optic sofisticat. S-ar putea ca acest lucru s nu fie posibil.
Pentru mrirea capacitii au fost definite patru formate:
1-O singur fa, un singur strat (4,7 GB).

152

Sorin Adrian Ciureanu


2-O singur fa, dou straturi (8,5 GB).
3-Dou fee, un singur strat (9,4 GB).
4- Dou fee, dou straturi (17 GB).
Cerinele pieei vor hotr care va rezista.

Substrat policarbonic 1
Strat semireflectorizant

Disc
1

Strat
reflectorizant
(Al)
Strat adeziv
Strat

Disc
2
Substrat policarbonic 2

reflectorizant
(Al)
Strat semireflectorizant

Fig. 4.19. Disc DVD cu dou fee a cte dou straturi. Disc 1 de 0,6mm.
Disc 2 de 0,6mm.
Tehnologia cu dou straturi depune un strat reflectorizant la baz,
acoperit de un strat semi reflectorizant. n funcie de focalizarea laserului, se
reflect dintr-un strat sau din cellalt. Stratul de dedesubt are nevoie de
caviti i soluri ceva mai mari, pentru a prezenta siguran n funcionare,
astfel nct capacitatea sa este mai mic dect cea a stratului superior.
Discurile cu dou fee sunt obinute din lipirea spate n spate a dou discuri
de 0,6 mm cu o singur fa. Pentru a asigura o grosime standard pentru
toate variantele, un disc cu o singur fa este un disc de grosime 0,6mm
lipit de un substrat neinscripionat. Structura unui disc cu dou fee a cte
dou straturi este dat n figura 4.19.
Dac DVD-ul va fi un mare succes, DVD-recordable
(inscripionabil) i DVD-rewritable (reinscripionabil) vor fi n scurt timp
produse pe scar larg. Succesul DVD-ului nu este ns garantat, deoarece
companiile de televiziune prin cablu au un plan destul de diferit pentru
distribuirea filmelor-video (la cerere, prin cablu) i btlia este abia la
nceput.

Arhitectura calculatoarelor

153

4.4.2. Periferice care nu stocheaz informaia


4.4.2.1. Tastatura
Principiul unei tastaturi este simplu: la apsarea pe o tast, se creeaz
un cod care va afia pe ecran simbolul tastei respective.
La vechile tastaturi aceast decodificare se fcea hard, cu ajutorul
unei matrici de decodificare, intern tastaturii. Acest sistem nu era unul
flexibil, principalul neajuns fiind incompatibilitatea tastaturilor de la un
calculator la altul.
Odat cu apariia PC-urilor, s-a creat un nou concept de tastatur n
care decodificarea nu se mai face hard ci soft, n sistemul de operare, mai
precis n driverul de tastatur. Cnd se apas o tast, se genereaz o
ntrerupere i este activat rutina de tratare a ntreruperilor de tastatur.
Aceast rutin citete un registru hard din controlerul de tastatur pentru a
obine numrul tastei apsate (sunt aproximativ 103 coduri de taste). Cnd
tasta este eliberat, se genereaz o a doua ntrerupere. Astfel rmne n
sarcina driverului s fac echivalena ntre numrul tastei apsate i simbolul
efectiv al tastei, care este un simbol al alfabetului ASCII. De obicei exist
drivere de tastatur pentru fiecare limb (englez, englez i francez,
german etc.)
4.4.2.2. Sistemul de afiaj
Sistemul de afiaj are dou componente:
-controlerul;
-monitorul de afiaj (ecranul de afiare).
Controlerul (denumit i placa video) conine o memorie de ecran,
care constituie de fapt o hart a ecranului. Exist dou moduri de afiare:
-alfa numeric;
-grafic.
n sistemul alfa numeric, caracteristic sistemelor de calcul mai vechi,
exist un set de caractere predefinite afiate pe ecran.
n sistemul grafic ecranul este mprit n pixeli , fiecare pixel avnd
o serie de atribute, cel ai important fiind cel de culoare. Numrul de pixeli
de pe ecran depinde e capacitatea memoriei ecran dar i de structura i
rezoluia monitorului.
Memoria de ecran este de obicei implementat cu o memorie
dinamic iar capacitatea ei a crescut spectaculos n ultimii ani.

154

Sorin Adrian Ciureanu

De remarcat c, n ultimul timp, placa video a fost nlocuit cu un


procesor grafic, care este de fapt un procesor grafic specializat, i care are
propriile instruciuni grafice. Exist numeroase programe specializate care
activeaz instruciunile grafice ale procesorului video. De exemplu cu
DIRECT X din SO WINDOWS se poate lucra cu aceste instruciuni grafice.
Pentru cei care lucreaz aplicaii grafice cu instruciunile procesorului video,
exist un mare avantaj fa de cei care lucreaz cu instruciunile grafice ale
procesorului central, n sensul creterii de vitez n mod real. Datorit
faptului c busul de memorie lucreaz bine la viteze mici fa de cele ale
procesorului central, este important pentru sistemul video s se lucreze cu
instruciuni ale procesorului video.
Monitoarele sau dispozitivele de afiaj sunt nite displayuri a cror
calitate principal trebuie s fie modificarea rapid a imaginii. Din punct de
vedere constructiv exist mai multe tipuri de monitoare:
-monitoare cu tub catodic;
-monitoare cu cristale lichide:
-monitoare cu plasm.
Monitoarele cu tub catodic, CRT(Cathodic Ray Tube), sunt cele
clasice, arhicunoscute.
Monitoarele cu cristale lichide, LCD (Liquid Crystal Display), au
cristale lichide, materiale organice cu o structur vscoas, care curg dar au
i o structur cristalin n acelai timp. Cnd toate moleculele sunt alineate
n aceeai direcie, proprietile optice ale cristalului depind de direcia i
polarizarea luminii incidente. Prin aplicarea unui cmp electric se pot obine
modificri ale alinierii moleculare i implicit ale proprietilor optice. Pentru
construcia monitoarelor, cea mai important proprietate este aceea ca, la
luminarea cristalului lichid, intensitatea luminii care iese s poat fi
controlat electric.
Ecranul unui monitor LCD este alctuit din dou plci paralele de
sticl aflate ntr-un volum sigilat care conine cristal lichid. Fiecare plac are
ataai electrozi transpareni. O surs de lumin, plasat n spatele plcii de
sticl din partea posterioar, lumineaz ecranul. Electrozii transpareni
ataai fiecrei sticle sunt utilizai pentru crearea unor cmpuri electrice n
interiorul cristalului lichid. Pri diferite ale ecranului sunt supuse unor
tensiuni diferite, cu scopul de a controla imaginea afiat.
Aceast tehnologie utilizeaz lumin polarizat i , de aceea, se
introduc n spatele i n faa ecranului nite folii polaroide.
Schema unui display cu 7 nivele este dat n figura 4.19. Acest
model este de tipul TN (Twisted Nematic). Placa posterioar conine

Arhitectura calculatoarelor

155

caneluri orizontale de dimensiuni foarte mici. Placa anterioar conine


caneluri verticale. n absena unui cmp electric, moleculele cristalului
lichid tind s se alinieze dup caneluri. Deoarece canelurile posterioare fac
un unghi drept cu cele anterioare, moleculele se rotesc pe msur ce se
nainteaz din spate n fa. Polaroidul orizontal va permite numai trecerea
luminii polarizat orizontal iar polaroidul vertical numai a celei polarizat
vertical. Dac nu ar fi lichid ntre acestea dou, lumina ar fi blocat i
ecranul ar afia un negru uniform. Datorit structurii cristaline n form
torsoidal a moleculelor LCD, lumina va fi ghidat de acestea de la intrare
pn la ieire, permind astfel trecerea luminii prin rotaia polarizrii ei.
Dac n absena unui cmp electric ecranul va fi uniform luminos, la
aplicarea unui potenial electric unor pri selectate din ecran, se poate
obine distrugere structurii moleculelor, blocnd astfel trecerea luminii prin
acele pri.
Sursa
de
lumin

Panou 1 Polaroid posterior


Panou 2 Electrod posterior
Panou 3 Plac de sticl posterioar
Panou 4 Cristal lichid
Panou 5 Plac de sticl frontal
Panou 6 Electrod frontal
Panou 7 Polaroid frontal

Fig. 4. 20. Schema unui monitor cu cristal lichid.


n funcie de modul de aplicare a tensiunii, exist dou scheme:
-ecran cu matrice pasiv;
-ecran cu matrice activ.
Ecranul cu matrice pasiv, care este ieftin, se caracterizeaz prin
faptul c ambii electrozi conin conductori filiformi paraleli.
Ecranul cu matrice activ este mult mai scump ns ofer o imagine
mult mai bun. Acest ecran are, n loc de fire metalice perpendiculare,
comutatoare minuscule pentru fiecare pixel. Prin nchiderea i deschiderea
comutatoarelor se poate crea un model arbitrar de poteniale punctiforme,
permind un afiaj cu model binar arbitrar.
Monitoare cu plasm. Sunt ecrane alctuite din mici baloane cu
neon. Fiecare balon poate fi activat prin crearea unei diferene de potenial
ntre firele ce trec prin poziia balonului respectiv, balonul selectat devenind
strlucitor.
Starea activ se menine cu o diferen de potenial mai mic dect
cea de la aprindere.

156

Sorin Adrian Ciureanu


4.4.2.3. Imprimanta

Imprimantele pot fi:


a)-monocrome;
b)-color.
a)-. Imprimante monocrome
Imprimanta matriceal (matrix printer), cea mai ieftin, are un
cap de tiprire, coninnd ntre 7 i 24 ace activabile electromagnetic, care
este deplasat n lungul fiecrei linii de tiprire. Imprimantele cu 7 ace,
pentru tiprirea a 80 de caractere pe linie, n matrice de 5x7, imprim 7 linii
orizontale, fiecare avnd 5x80 = 400 puncte. Fiecare punct poate fi imprimat
sau nu, n funcie de forma caracterelor de tiprit.
Calitatea tipririi se mbuntete prin utilizare mai multor ace i
suprapunerea parial a puntelor lsate de fiecare ac. n mod normal pentru
suprapunerea punctelor este necesar trecerea multipl peste fiecare linie
tiprit, dar calitatea crescut este deci legat de o micorare a vitezei.
Imprimantele matriciale sunt ieftine, necesit consumabile ieftine dar
sunt lente , zgomotoase i au o calitate grafic slab.
Sunt utile pentru tiprirea formelor mari sau a bucelelor mici de
hrtie.
Imprimanta cu jet de cerneal (inkjet printer) este bun pentru o
tiprire casnic cu cost redus. Capul mobil de tiprire, ce conine i un
cartu de cerneal, este deplasat orizontal pe hrtie, timp n care cerneala
este pulverizat prin nite orificii minuscule. n interiorul fiecrui orificiu
este nclzit electric o pictur de cerneal, la punctul de fierbere, pn
explodeaz. Singurul loc prin care cerneala se poate deplasa este prin
orificiu, pe hrtie. Orificiul este apoi rcit, vidul rezultat aducnd o nou
pictur.
Viteza imprimantei este limitat de frecvena repetrii ciclului
fierbere / rcire.
Imprimantele cu jet de cerneal au rezoluii de 300 720 dpi (dots
per inch = puncte pe inci) dar exist i imprimante cu 1440 dpi.
Ele sunt ieftine, silenioase i de o calitate grafic bun. Sunt ns
destul de lente i necesit cartue cu cerneal scumpe.
Imprimanta laser (laser printer) d o imagine de o nalt calitate,
are o flexibilitate excelent, o vitez bun i un cost moderat.
Imprimantele laser se bazeaz pe o tehnologie asemntoare cu
echipamentele de fotocopiere.

Arhitectura calculatoarelor

157

4.21. Schema unei imprimante laser.


Tehnologia de baz este ilustrat n figura 4.21. Inima imprimantei
este un cilindru rotativ de mare precizie (n anumite sisteme de mare
performan, o curea). La nceputul fiecrui ciclu de pagin, cilindrul este
ncrcat cu un potenial se cca. 1000 V i este acoperit cu material
fotosensibil. n continuare un laser este deplasat de-a lungul cilindrului,
asemntor felului n care este deplasat fascicolul electronic ntr-un monitor
CRT, ns n locul obinerii unei deflecii orizontale prin utilizarea unei
tensiuni, aici se utilizeaz o oglind octogonal care se rotete, pentru a
scana ntregul cilindru n lungime. Fascicolul luminos este modulat pentru a
produce un model de puncte luminoase i ntunecate. Locurile unde
fascicolul atinge cilindrul i pierd sarcina electric.
Dup ce o linie de puncte este imprimat, cilindrul se rotete o
fraciune de grad pentru a facilita imprimarea urmtoarei linii. La un
moment dat prima linie de puncte ajunge la toner, un rezervor ce conine un
praf negru senzitiv din punct de vedere electrostatic. Praful este atras de

158

Sorin Adrian Ciureanu

punctele ce sunt ncrcate electrostatic, formnd astfel o reprezentare


vizual a liniei respective.
n continuarea traseului, cilindrul acoperit cu toner este presat asupra
hrtiei, avnd loc transferul prafului negru ctre hrtie. Hrtia este apoi
trecut printre dou role nclzite, pentru a fixa definitiv imaginea.
n continuarea rotaiei sale, cilindrul este descrcat electric i curat
de orice toner rezidual, preparndu-se astfel pentru a fi din nou stropit i
ncrcat electric pentru pagina urmtoare.
Funcionarea unei imprimante laser este bazat pe o combinaie
complicat de fenomene fizice, chimice i de tehnici mecanice i optice.
Totui firmele produc diverse ansambluri complete numite dispozitive de
imprimare (print engines).
Diveri productori combin aceste maini complicate cu propriile
lor circuite electronice i programe aferente pentru a obine o imprimant
complet. Electronica este compus dintr-o UC rapid i un numr de octei
de memorie, pentru a putea memora imaginea ntreag a unei pagini,
reprezentat ca o hart de bii. Are de asemenea numeroase fonturi, unele
din ele integrate altele putnd fi ncrcate. Majoritatea imprimantelor
accept comenzi de scriere a paginilor de tiprit (spre deosebire de cazul
simplei acceptri a reprezentrii unei pagini prin hart de bii construite de
UCP unitatea central principal). Aceste comenzi sunt formulate n
limbaje speciale cum ar fi PCL, dezvoltat de firma HP, sau Post script,
dezvoltat de Adobe.
La o rezoluie de peste 600 dpi, imprimantele laser pot oferi o
calitate acceptabil pentru tiprirea de fotografii alb-negru.
b)-Imprimante color
Imaginile color pot fi percepute n dou moduri: prin lumin
transmis sau lumin reflectat. Imaginile percepute ca lumin transmis,
cum ar fi cele produse de monitoarele CRT, sunt construite prin
suprapunerea liniar a celor trei culori aditive primare: rou, verde, albastru
(Red, Green, Blue = RGB). Imaginile percepute ca lumin reflectat, cum
ar fi fotografiile color sau imaginile din reviste, absorb anumite lungimi de
und luminoas i reflect restul. Acestea sunt construite printr-o
superpoziie liniar a celor trei culori primare absorbante, cyan (absoarbe tot
spectrul rou), galben (absoarbe tot spectrul albastru ), i magenta (absoarbe
tot verdele). n teorie, orice culoare poate fi generat prin amestecarea unor
cerneluri de culoare cyan, galben i magenta. n practic este dificil
obinerea unei cerneli suficient de pur pentru a oferi o absorbie total
necesar pentru un negru curat. Din aceast cauz, majoritate sistemelor de

Arhitectura calculatoarelor

159

tiprire color utilizeaz patru cerneluri: cyan, galben, magenta i negru.


Aceste sisteme se numesc CYMK (Cian, Yelow, Magenta, blacK). n
schimb, monitoarele utilizeaz pentru generarea culorilor lumina transmis
i sistemul RGB (Red,Green,Blue).
Setul complet de culori ce poate fi generat de un ecran sau o
imprimant se numete gam (gamut) . Nici un echipament nu are o gam
care s se potriveasc lumii reale. La aceasta se mai adaog i
imperfeciunile tehnologice i imperfeciunile de percepie prin funcionarea
bastonaelor i a conurilor din retina uman.
n consecin, procedeul convertirii unei imagini color de pe ecran
ntr-o imagine identic tiprit este departe de a fi simplu. El pune o serie de
probleme printre care:
-Monitoarele color utilizeaz lumina transmis iar imprimantele
color lumina reflectat.
-Monitoarele CRT produc 256 de intensiti pentru fiecare culoare;
imprimantele color utilizeaz un model cu semitonuri.
-Monitoarele au fundal negru; hrtia este alb.
-Gamele RGB i CMYK sunt diferite.
Cinci tehnologii sunt utilizate n tiprirea color, toate bazate pe
sistemul CYMK (Cyan, Yelow, Magenta, Black).
1.-Imprimantele color cu jet de cerneal lucreaz la fel cu
imprimantele monocrome cu jet de cerneal, utiliznd patru cartue cu
cerneal pentru CYMK, n loc de unul sigur. Imprimantele sunt ieftine dar
cartuele foarte scumpe.
Pentru obinerea unor rezultate bune este necesar folosirea unor
cerneluri i unor hrtii speciale. Exist Cerneala bazat pe vopsea (dyebased ink) care este compus din vopsele colorate dizolvate ntr-un purttor
fluid. Se obin culori luminoase dar nu rezist la lumina ultraviolet.
Cerneala bazat pe pigmeni (pigment- based ink) conine particule solide
suspendate ntr-un fluid ce se evapor, lsnd pigmentul pe hrtie. Se obin
culori mai puin luminoase dar mai rezistente n timp, ns particulele de
pigment tind s obtureze orificiile capului de tiprire. Pentru fotografii este
necesar o hrtie lucioas, special conceput pentru a asimila picturile i a
nu permite ntinderea acestora.
2.- Imprimantele cu cerneal solid (solid ink printers) constituie
o treapt superioar n imprimarea color. Conin patru buci de cerneal
solid cu o compoziie vscoas ce sunt topite n rezervoare ncinse. Timpul
de pornire poate fi chiar i de 10 minute, timp n care are loc topirea cernelii

160

Sorin Adrian Ciureanu

care apoi este pulverizat pe hrtie unde are loc solidificarea urmat de
impregnarea acesteia n hrtie prin trecerea printre doi cilindri speciali.
3.-Imprimantele laser color funcioneaz ca i cele laser
monocrome, cu deosebirea c pe cilindru se genereaz imagini separate
pentru fiecare component CYMK, utilizndu-se patru tonere diferite. Sunt
extrem de scumpe, dar tiprirea este rapid, calitatea ridicat iar imaginile
obinute stabile n timp.
4.-Imprimantele cu cear ( wax printers) au o band larg
compus din cear de patru culori, segmentat n benzi de dimensiunea unei
pagini. Mii de elemente de topire acioneaz asupra cerii impregnnd-o n
hrtie pe msur ce hrtia se deplaseaz sub ea. Impregnarea hrtiei se
realizeaz sub form de pixeli utiliznd sistemul CYMK. Consumabilele
fiind foarte scumpe, exist tendina de a fi nlocuite.
5.-Imprimantele cu sublimarea vopselii (dye sublimation
printers) au un purttor care conine vopselele CYMK i trece deasupra
unui cap de imprimare termic, alctuit din mii de elemente de nclzire
programabile. Vopselele se evapor instantaneu i sunt absorbite de o hrtie
special aflat n imediata apropiere. Fiecare element de nclzire poate
produce 256 temperaturi diferite. Cu ct temperatura este mai ridicat, cu
att mai mult vopsea se depune pe hrtie i se obine o nuan mai intens.
Spre deosebire de alte imprimante color, n acest caz se poate obine pentru
fiecare pixel un spectru de tonuri de culori aproape continuu. Mici
imprimante de uz special utilizeaz deseori procesul de sublimare pentru a
obine fotografii pe hrtie special i foarte scump.

Capitolul 5

Arhitectura calculatoarelor

161

MAGISTRALE
Transferurile de informaie ntre procesor, memorie i diferiii
controlori de I/E se efectueaz prin dispozitive de comunicare numite
magistrale sau busuri. Un bus cuprinde, n general, trei subansambluri:
-liniile de adres care selecioneaz unitile receptoare;
-liniile de date;
-liniile de control.
Un bus intern, din interiorul procesorului, este un ansamblu de fire
electrice pasive. El nu poate fi comandat dect de un dispozitiv odat.
Pentru un bus extern procesorului se pune problema unei funcionabiliti.
n acest capitol va fi vorba de busurile externe i despre funcionarea lor.
Busurile externe nu au un control centralizat natural. Fiecare dispozitiv,
(spre exemplu un procesor sau un disc) poate dori s ia un bus. O tranzacie
la un bus are dou etape:
-arbitrajul ntre mai multe poteniale cereri;
-transferul de date.
Ansamblul de mecanisme de arbitraj i transfer se numete
protocolul busului. Procesorul este conectat cu lumea exterioar printr-un
bus al crui protocol este specific procesorului. Busurile de I/E
interconecteaz dispozitivele de I/E la busul procesor. Aceste sisteme de
busuri pot accepta dispozitive de construcie variate, cu viteze i latene
diferite. Protocolul lor este definit public prin standarde.

5.1. ARBITRAJ
n literatur exist denumirile de stpn (master, maitre), oficial n
romnete iniiator (intiator), pentru orice dispozitiv capabil s acceseze un
bus, adic s preia controlul formulnd cereri (de exemplu procesorul sau
unele controloare), i sclav (slave, esclave) oficial n romnete int
(target), pentru dispozitivele care nu au aceast abilitate (de exemplu
memoria). n cazul primelor dispozitive, la trimiterea unei adrese sau
comenzi, se efectueaz aciunea cerut. Dar existena mai multor masteri
poteniali implic necesitatea unui arbitraj pentru accesul la un bus.
Protocoalele trebuie s satisfac att constrngerile de prioritate (urgena
cererilor diferitelor dispozitive), ct i pe cele de echitate (orice dispozitiv,
chiar cel mai puin prioritar, trebuie s fie servit).

162

Sorin Adrian Ciureanu

Exist mai multe tipuri de arbitraj.


- Arbitraj prin nlnuire. Arbitrajul prin nlnuire este ilustrat n
figura 5.1.
Atribuire
i-1
Arbitru

I+1

Cerere
Bus ocupat

Fig. 5.1. Arbitraj prin nlnuire.


Pentru obinerea busului se activeaz firul cerere. La sfritul
utilizrii se dezactiveaz semnalul Bus ocupat. Arbitrul trimite atunci o
tranziie pe linia Atribuire. Dac organul de rang i nu cere busul, arbitrul
paseaz cererea pe linia de atribuire la i+1. Dac acesta a cerut busul,
blocheaz linia i activeaz linia Bus ocupat.
n versiunea simpl prioritatea este fixat, ea descrescnd cnd i
crete. O prioritate mai mobil, n care ultimul servit devine cel mai puin
prioritar, se poate obine dac se impune ca un master care a prsit busul s
nu-l poat obine din nou dect atunci cnd vede linia Cerere n stare
inactiv. Deoarece toi candidaii la bus menin linia Cerere n stare
activ, un master care tocmai a utilizat busul nu-l va mai putea obine dect
dup ce toi ceilali candidai au fost servii.
- Arbitraj cu un arbitru centralizat. Toi potenialii candidai la bus
transmit cererea lor printr-un fir special la un arbitru unic care-i cunoate pe
toi i tie prioritile lor. Liniile de atribuire a busului sunt de asemenea
specifice.
-Arbitraj cu un mecanism descentralizat. Cererile de bus se fac cu
ajutorul a mai multor linii. Ansamblul acestor linii constituie un nivel de
prioritate. De exemplu, cu 4 fire de cerere este posibil s fie 16 niveluri de
cerere, de la 0 (absena cererii) pn la 15 (nivel maxim de prioritate).n
felul acesta, orice candidat la bus poate compara nivelul su de cerere cu
nivelul de cerere prezent pe bus i tie dac poate obine busul sau nu.

5.2. TRANSFER DE DATE

163

Arhitectura calculatoarelor

A doua caracteristic a unui protocol de bus este tipul de referin


temporal. ntr-un bus sincron, emitorul i receptorul mprtesc acelai
orologiu. ntr-un bus asincron, emitorul i receptorul au fiecare referine
de timp diferite i incomparabile.

5.2.1. Magistral sincron


La o lectur, master-ul plaseaz adresa pe firele de adrese pe un ceas
i ordinul de citire pe firele de comenzi. Adresele sunt decodificate de toi
slave-ii i lectura efectuat. Cuvntul citit este plasat pe firele de date, cu n
cicluri de bus dup iniializarea transferului de ctre master, n1 ( n depinde
de durata ciclului unui bus, de lungimea busului, de timpul de acces la un
slave etc). La fel, la o scriere intr-un slave, master-ul plaseaz simultan
adrese i date pe firele corespunztoare i ordinul de scriere pe firele de
comand. n toate cazurile, toate operaiile n diferite organe, master sau
slave, sunt sincronizate de ceas magistral.
Figura 5.2. arat exemplu busului POWERPath-2 a SGI. Se
utilizeaz un bus de date de 256 bii i un bus de adres de 40 bii
cadenarea este de 47,6 MHz.
Adr.

Control

Adrese

Ad
A

Date

Dec.

Sfrit

Cer.

Arb.

Sf.

Adr.

Dec.

Sfrit

com

Arb.

com

Cer.

Sf.

Ad
B
D0
A

D1
A

D2
A

D3
A

D0
B

Fig. 5.2. Diagrama temporal a busului POWERPath-2.


Toate tranzaciile acestui bus utilizeaz exact cinci cicluri bus.
Primele dou sunt utilizate pentru arbitraj. Cererile diferitelor organe sunt
trimise n timpul primului ciclu i un arbitraj descentralizat atribuie busul
unui master n timpul celui de-al doilea ciclu. Adresele i comanda sunt
trimise n al treilea ciclu. Al patrulea ciclu este consacrat decodajului

164

Sorin Adrian Ciureanu

adreselor de ctre slave. Al cincilea ciclu semnaleaz sfritul tranzaciei i


ncepe transferul de date. Cnd nu este semnal de sfritul operaiei, totul
trebuie reluat de la nceput. Exemplul din figura 5.2. arat posibilitatea de a
citi patru date de adrese succesive la o singur tranzacie.
n afar de aceasta, busul are o arhitectur pipeline: faza de cerere a
tranzaciei i+1 ncepe n timpul fazei de transmisie a datelor din transmisia
i. Astfel busul poate asigura un debit de 1,2 GO/s (32 octei x 47,6 MHz).
Magistralele sincrone
sunt adaptate pentru componente
ce
funcioneaz cu ceasuri nu prea diferite, ca unitatea central i memoria.
Inconvenientul este c dispersiile orologiului, care cresc cu lungimea
conexiunilor, impun lungimi relativ mici, limitate la 50 cm., mai ales atunci
cnd este necesar o funcionare la frecvene ridicate.
n cazurile dispozitivelor n care componentele lente coexist cu
componente rapide, sunt necesare magistrale asincrone. La fel pentru
conexiuni lungi.

5.2.2. Magistral asincron


Pentru o magistral asincron, master-ul i slave-ul trebuie s se
sincronizeze printr-un protocol cerere/achitare al crui suport este una sau
mai multe linii de control. S considerm un exemplu sintetic al unui bus n
care adresa i datele sunt multiplexate. Controlul are trei linii:
-REQ, cere o lectur; adresa este plasat simultan pe bus;
-Data Disponibil (DD), semnal c un cuvnt este disponibil pe linia
de date;
-Ac., achitare.
Fig. 5.3. prezint un protocol pentru o lectur; arbitrajul nu este
descris. Master-ul i slave-ul mprtesc busul de adrese/date i nu trebuie
deci s-l poziioneze simultan. Semnalele de control sunt, prin convenie,
active la starea cea mai nalt. Principiul protocolului este ca liniile comune
(date, adrese i achitare) trebuie s fie puse la starea inactiv tot de ctre
dispozitivul care le-a activat anterior. Corespondentul lui trebuie s-i trimit
un semnal pentru a-i arta c a vzut semnalul activ i c nu-i mai este
necesar.
1. Master-ul cere lectura; el ridic semnalul REQ i plaseaz adresa
pe bus.
2. Slave-ul vede cererea i o achit activnd Ac.
3. Master-ul vede achitarea, coboar REQ i libereaz busul date
/adrese.

165

Arhitectura calculatoarelor

4. Slave-ul vede c stpnul a vzut achitarea (REQ la starea joas)


i coboar Ac.
5. Cnd slave-ul are data gata, o plaseaz pe busul date/adrese i
activeaz DD.
6. Master-ul vede DD; el elibereaz busul; cnd a terminat activeaz
Ac.
7. Slave-ul vede Ac., libereaz DD i busul date/adrese.
8. Master-ul vede DD la starea joas i coboar Ac.

REQ

2
Data

Adrese

Date

Ac.
6

DD

Fig. 5.3. Diagrama temporal a unui bus asincron.

5.3. EXEMPLE DE MAGISTRALE


Exist cteva busuri de succes: ISA, PCI i USB. Magistrala ISA a
fost o uoar extindere a magistralei IBM PC originale. Din motive de
compatibilitate cu modelele anterioare ea este nc prezent n PC-urile
bazate pe Intel. Totui aceste maini au totdeauna i o a doua magistral mai
rapid, magistrala PCI (Peripheral Component Interconnect), n
romnete Magistral de conectare cu componentele periferice. USB
(Universal Serial Bus), Magistrala serial Universal, este o magistral

166

Sorin Adrian Ciureanu

de I/E, cu o rspndire n cretere, pentru periferice de vitez sczut, cum


ar fi tastaturile i mausurile.

5.3.1. Magistrala ISA


Magistrala IBM PC a fost un standard de facto pentru sistemele
bazate pe 8088, deoarece aproape toi vnztorii de computere personale au
copiat-o pentru a permite utilizarea n sistemele lor a plcilor de I/E de la
teri furnizori. IBM a dezvoltat aceast magistral crend PC/AT i apoi
Microchanel pentru noile maini PS/2. Aceast nou magistral era protejat
de multe patente i, de aceea, restul industriei de calculatoare personale a
adoptat propriul standard, magistrala ISA (Industry Standard
Architecture) - arhitectura standard pentru industrie- care este n esen
busul PC/AT ce funcioneaz la 8.33MHz.
Avantajul acestui standard este c pstreaz compatibilitatea cu
mainile existente. Fiecare PC bazat pe Intel are nc prezent aceast
magistral, dei mai are nc una sau dou magistrale mai noi.
Mai trziu magistrala ISA a fost extins la 32 bii i, cu alte cteva
faciliti introduse, a devenit EISA (Extendet ISA).

5.3.2. Magistrala PCI


Magistrala PCI este o specificaie Intel, a crei versiune 1.0. a fost
definitivat n 1992 (versiunea 2.1. n 1995). Pentru a ncuraja utilizarea ei,
dup ce a obinut patentul pentru PCI, Intel a pus patentul n domeniul
public, astfel nct orice companie a putut s construiasc periferice pentru
ea, fr s plteasc drept de autor. S-a format un consoriu (PCI Special
interest Group) pentru a administra viitorul magistralei PCI. Ca rezultat,
busul PCI a devenit extrem de rspndit.
PCI este un bus sincron, pe 33 sau 66 MHz. Liniile de date i adrese
sunt multiplexate, pe 32 bii, sau pe 64 bii. Sunt posibile transferuri
vectorizate (burst): master-ul transmite o adres i un numr de octei i
perifericul va plasa succesiv pe bus octeii cerui. Pentru un transfer de
dimensiuni mari, se atinge un debit asimptotic de 4 octei pe ciclu la
33MHz. , n configuraia cea mai joas 132 MO/s (de nmulit cu 2 la 66
MHz sau la 64 bii).
Magistrala PCI nu este procesat pipeline: adresele i datele se
succed pe busul multiplexat. Este un bus destinat transferurilor masive.

Arhitectura calculatoarelor

167

Un transfer comport o faz de adresare, care dureaz un ciclu,


urmat de o faz de transfer. S lum cazul unei lecturi.
- Ciclul 1. Master-ul plaseaz o adres pe busul adrese/date; aceast
adres identific perifericul i adresa de plecare a datelor de transferat.
Masterul definete tipul de tranzacie prin liniile de control C/BE i coboar
semnalul FRAME# pentru a semnala prezena unei tranzacii.
- Ciclurile urmtoare. Perifericele decodeaz adresa. inta se
semnaleaz cobornd semnalul DEVSEL#. Trebuie s notm c inta
trebuie s etaloneze adresa, pentru c ea conine de asemenea adresa local.
inta dispune de 6 cicluri pentru a cobor semnalul DEVSEL#, dup aceea
semnalul este anulat. Mai precis, toate interfeele conectate la bus, n afar
de una, trebuie s decodeze efectiv adresele i s rspund n ciclul 2,3 sau
4. O interfa, de obicei puntea, ctre un bus de extensie, poate s reclame
adresele nedecodate i s coboare semnalul DEVSEL n cursul ciclurilor 5,
6 i 7. (vezi semnificaia semnalelor la pag. 165)
Sunt posibile transferuri complexe pe liniile C/BE. ncepnd din
ciclul 2 i n timpul ntregului transfer, masterul identific prin aceast linie
octeii de transferat, de exemplu 0000 pentru patru octei ncepnd de la
adresa de plecare, 0001 pentru cei trei mai puternici etc.
5.3.2.1. Ameliorarea performanelor.
Debitele magistralelor sunt funcie de natura sincron sau asincron
a protocolului i de durata diferitelor operaii efectuate Aceti factori pot fi
ameliorai prin anumite tehnici.
a)-Mrirea lrgimii unui bus. Este un fenomen tipic n evoluia
recent. Cum busurile ntre cache i memoria principal trebuie s
transfere adesea blocuri de cache, lrgirea busului de date permite s se
transfere mai multe cuvinte pe ciclu bus, reducnd astfel numrul de cicluri
pe bus necesare. Este una din tehnicile utilizate pentru a micora penalitatea
de MIS n cache.
b)- Transfer de blocuri. Timpul de transfer de blocuri de cache sau
de blocuri de disc poate fi redus dac busul poate transfera mai multe
cuvinte de adres succesive ntr-un ir nentrerupt de cicluri bus, fr s
trimit o adres sau s elibereze busul ntre fiecare ciclu. Aceast tehnic
este utilizat n busul PowerPath-2 prezentat.
c)- Tranzacii activate sau nlnuite. O tranzacie pe un bus poate
utiliza liniile de control, date sau adrese numai o fraciune din timpul
tranzaciei totale. Este cazul lecturilor n memorie cnd timpul de acces la

168

Sorin Adrian Ciureanu

memorie este de mai muli cicluri bus. Cu un protocol n care busul este
blocat n timpul ntregii durate a tranzaciei, busul ateapt ntre momentul
n care a transmis adresa i data memorie este disponibil. Activnd
tranzacia numai n diferite etape n care busul este efectiv utilizat, se poate
elibera busul cnd nu este utilizat i nlnui mai multe transmisii. Se poate
astfel ameliora debitul efectiv al busului, cu condiia ca busul i organele
conectate s poat gestiona mai multe tranzacii nlnuite.
5.3.2.2. Adresarea magistralei PCI

REQ#
GNT#

REQ#
GNT#

REQ#
GNT#

REQ#
GNT#

Dispozitiv
PCI

Dispozitiv
PCI

Dispozitiv
PCI

Dispozitiv
PCI

PCI utilizeaz un arbitru centralizat, ca n figura 5.4. coninut de


obicei ntr-unu din circuitele de punte. Fiecare dispozitiv din PCI are dou
linii dedicate, care merg de la el la arbitru. O linie REQ este utilizat pentru
a cere magistrala i o linie GNT pentru recepionarea recunoaterii alocrii.

Arbitru
PCI

Fig.5.4. Arbitru centralizat pentru magistrala PCI.


Pentru a cere magistrala, un dispozitiv PCI (inclusiv UC) activeaz
semnalul REQ i ateapt pn cnd vede c linia GNT este activat de ctre
arbitru. Atunci dispozitivul poate utiliza magistrala pe durata ciclului
urmtor. PCI nu specific un anumit algoritm. Se poate utiliza arbitrarea
round robin, arbitrarea n funcie de prioriti, sau alte scheme.

Arhitectura calculatoarelor

169

Magistrala se aloc pentru o tranzacie, cu toate c lungimea acestei


tranzacii este nelimitat. Dac un dispozitiv vrea s realizeze o a doua
tranzacie i nici un alt dispozitiv nu solicit magistrala, el o poate realiza,
dei, n mod normal, ntre tranzacii trebuie s existe un ciclu inactiv. Totui,
n absena competiiei pentru magistral, un dispozitiv poate realiza
tranzacii una dup alta fr s insereze un ciclu inactiv. Dac se cere
magistrala, arbitrul poate nega linia GNT.
5.3.2.3. Semnalele magistralei PCI
Tabelul 5.1. Semnale obligatorii ale magistralei PCI.
Semnal
CLK
AD
PAR
C/BE

Linii
1
32
1
4

Master
X
X
X
X

Slave

FRAME#
IRDY#

1
1

X
X

IDSEL#
DEVSEL#

1
1

TRDY#

STOP#
PERR#
SERR#

1
1
1

REQ#
GNT#
RST#

1
1
1

Descriere
Ceas (33MHz sau 66 MHz).
Linii de adrese i date, multiplexate.
Bit de paritate pentru adrese sau date
Configuraie pe magistral pentru comand/bii
pentru octei validai.
Arat c AD i C/BE sunt activate.
La citire: masterul va accepta; la scriere:slave-ul va
accepta..
Selectare spaiu de configuraie, n locul memoriei.
Slave-ul a decodificat adresa sa i ateapt
(recepioneaz).
La citire: date prezente; la scriere: slave-ul va
accepta.
Slave-ul vrea s opreasc tranzacia imediat.
Eroare de paritate detectat de receptor.
S-a detectat eroare de paritate, de adres sau de
sistem.
Cerere pentru atribuirea magistralei.
Recunoaterea atribuirii magistralei.
Iniializarea sistemului i a tuturor dispozitivelor.

Tabelul 5.2. Semnale opionale ale magistralei PCI


Semnal
REQ64#
ACK#
AD
PAR64
C/BE#
LOCK

Linii
1
1
32
1
4
]

SBO#

SDONE
INTx
JTAG

]
4
5

Master
X

Slave
X

X
X
X
X

Descriere
Cerere pentru a realiza o tranzacie pe 64 bii.
Se acord permisiunea pentru o tranzacie pe 64bii.
32 bii suplimentari pentru adrese sau date.
Paritatea pentru ce 32 bii suplimentari de adres/date.
4 bii suplimentari pentru activare octet.
Blocheaz magistrala pentru a permite tranzacii
multiple.
Gsirea informaiei pe o memorie intermediar
ndeprtat (pentru un sistem microprocesor).
Actualizarea consistenei informaiei (snooping).
Cerere de ntrerupere.
Semnale de test IEEE 1149,1 JTAG.

170
M66EN

Sorin Adrian Ciureanu


1

Cablat la alimentare sau la mas.

Busul PCI are un numr de semnale obligatorii (Tabelul 5.1.) i un


numr de semnale opionale (Tabelul 5.2).
a)-Semnalele obligatorii. Semnalul CLK(CLOCK) comand
magistrala. Cele mai multe alte semnale sunt sincrone cu acesta.
Cele 32 semnale AD (ADDRESS), activate de master, sunt pentru
adres i date (pentru tranzaciile pe 32 bii). n general, pe durata ciclului 1
este activat adresa i pe durata ciclului 3 sunt activate datele. PAR
(PARITY)) este un bit de paritate pentru AD. C/BE este utilizat pentru dou
lucruri diferite. Pe ciclul 1 el conine comanda magistralei (citete un
cuvnt, citete bloc etc.). Pe ciclul 2 conine o configuraie de 4 bii care
specific ce octei ai cuvntului de 32 bii este valid. Utiliznd C/BE este
posibil s se citeasc/scrie 1,2,3, octei sau ntreg cuvntul.
Semnalul FRAME este activat de masterul magistralei pentru a
ncepe o tranzacie pe magistral. IRDY este activat n acelai timp cu
FRAME. El spune c masterul este gata s accepte datele de intrare. La o
scriere, IRDY este activat mai trziu cnd datele sunt pe magistral.
IDSEL este legat de faptul c fiecare dispozitiv PCI trebuie s aib
un spaiu de configuraie de 256 bii pe care s-l poat citi (prin activarea
IDSEL).Acest spaiu de configuraie conine proprietile dispozitivului.
Caracteristica de autoconfigurare (Plugn Play) a unor sisteme de operare
utilizeaz spaiul de configuraie pentru a ti ce dispozitive sunt pe
magistral.
Dintre semnalele activate de slave, DEVSEL(DEVICE SELECTED)
anun c slave-ul a detectat adresa sa pe liniile adres i este pregtit s se
angajeze n tranzacie. Dac DEVSEL nu este activat pe anumit durat de
timp, master-ul presupune c dispozitivul adresat este fie stricat fie absent.
TRDY este activat de slave la citiri pentru a anuna c datele sunt pe
liniile de adres i la scrieri pentru a anuna c este pregtit s accepte date.
Urmtoarele trei semnale sunt pentru raportare de erori. STOP este
activat de slave dac se ntmpl ceva dezastruos, PERR(PARITY ERROR)
pentru a anuna o eroare de paritate i SERR(SYSTEM ERROR) pentru a
anuna erori de adres sau de sistem.
REQ i GNT sunt pentru arbitrarea magistralei i nu sunt activate de
masterul curent de pe magistral ci de un dispozitiv care dorete s devin
master . RST(RE-SET)este utilizat pentru reiniializarea sistemului, dac
utilizatorul apas pe butonul RESET sau dac un dispozitiv anun o eroare
fatal.
b)-Semnalele opionale. Cele mai multe sunt legate de extinderea de
la 32 la 64 bii. REQ64 i ACK64 permit masterului s cear tranzacii pe 64

171

Arhitectura calculatoarelor

bii i slave-ului s le accepte. AD, PAR64 i C/BE sunt extensii pentru 64


bii.
Urmtoarele nu sunt legate de diferena dintre 32 i 64 bii ci de
sistemele multiprocesor. Semnalele INTx(INTERRUPT) sunt pentru cereri
de ntrerupere. O plac PCI are pn la patru dispozitive logice separate i
fiecare poate avea propriile sale linii de ntrerupere. Semnalele JTAG sunt
pentru procedura de test IEEE 1149.1 JTAG. M66EN este cablat fie la
tensiunea de alimentare fie la mas, pentru a stabili viteza ceasului. El nu
trebuie schimbat pe durata funcionrii sistemului.
5.3.2.4. Tranzacii pe magistrala PCI
n diagrama de timp din figura 5.5. este dat o tranzacie de citire,
urmat de un ciclu inactiv i de o tranzacie de scriere, pentru acelai master
de pe magistral.
Ciclu magistral
Citire
T1

T2

Inactiv
T3

T4

Scriere
T5

T6

T7

Magistrala este liber


AD
C/BE

Adres

Date

comand

validare

Adres

Date
comand

validare

RAME
IRDY
DEVSEL
IRDY

Fig.5.5. Exemplu de tranzacii pe magistrala PCI.

172

Sorin Adrian Ciureanu

Pe frontul descresctor al ceasului, pe durata T 1, master-ul pune


adresa de memorie pe AD i comanda pentru magistral pe C/BE .
El activeaz apoi FRAME pentru a ncepe tranzacia.
Pe durata lui T2 master-ul las magistrala de adrese liber (adic n
starea de mare impedan), n pregtirea ei pentru slave, care o va controla
pe durata T3 . De asemenea, master-ul modific C/BE pentru a arta ce octei
din cuvntul adresat vrea s-i valideze (adic s-i citeasc).
n T3 slave-ul activeaz DEVSEL, astfel c master-ul tie c acesta a
luat adresa i intenioneaz s rspund. De asemenea el pune datele pe
liniile AD i activeaz TRDY pentru a anuna masterul. Dac slave-ul nu
poate s rspund aa repede, el va trebui totui s activeze DEVSEL,
pentru a anuna prezena sa, dar menine TRDY# negat pn cnd poate s
preia datele. Aceast procedur poate introduce dou sau mai multe stri de
ateptare (WAIT).
n acest exemplu (i adesea n realitate), urmtorul ciclu este inactiv.
In T5, acelai master iniiaz o scriere. El ncepe prin plasarea adresei i a
comenzii pe magistral, numai c acum el activeaz datele. ntruct acelai
dispozitiv controleaz liniile AD, nu este necesar un ciclu de eliberare a
magistralei. Pe T7 memoria accept datele.

5.3.3. Magistrala USB


Magistrala PCI este adecvat pentru ataarea perifericelor de mare
vitez la calculator. Este ns prea costisitor s se ataeze cte o interfa
PCI pentru fiecare dispozitiv I/E de vitez sczut. De aceea, n 1990,
reprezentani de la apte companii au proiectat un standard denumit USB
(Universal Serial Bus, n romnete magistral serial universal). De
atunci li s-au alturat i alte companii i acum este implementat pe scar
larg n calculatoarele personale.
Companiile iniiatoare au avut urmtoarele obiective:
1- Utilizatorii nu trebuie s aib de poziionat comutatoare sau
conexiuni (jumpere) pe plci sau dispozitive.
2- Pentru a instala noi dispozitive, utilizatorii nu trebuie s deschid
cutia.
3- Trebuie s existe un singur tip de cablu bun pentru conectarea
tuturor dispozitivelor.
4- Dispozitivele de I/E trebuie s se alimenteze singure, prin cablu.
5- Se pot ataa pn la 127 dispozitive la un singur calculator.

173

Arhitectura calculatoarelor

6- Sistemul ar trebui s suporte dispozitivul n timp real (de exemplu


sunet, telefon).
7- Dispozitivele trebuie s poat fi instalate n timp ce calculatorul
funcioneaz.
8- Dup instalarea unui nou dispozitiv s nu trebuiasc repornit
calculatorul.
USB ndeplinete aceste condiii i este proiectat pentru dispozitive
cu vitez redus: tastaturi, mausuri, camere de luat vederi, scanere, telefoane
digitale i altele. Banda de trecere total pentru USB este de 1,5 MO/sec.,
suficient pentru un numr substanial de astfel de dispozitive.
USB const dintr-un hub central (root hub)care se conecteaz la
magistrala principal. Acest hub are socluri pentru cabluri care se pot
conecta la dispozitive I/E sau la hub-uri de extindere, astfel c topologia
unui USB este un arbore cu rdcina la hub-ul central, n interiorul
calculatorului. Cablurile au diferii conectori la captul hubului i la captul
dispozitivului, pentru a preveni interconectarea accidental a dou socluri cu
huburi.
Timpul (ms)
0

Inactiv
Cadru 0

Cadru 1

Cadru 2

SOF

Cadru 3

SOF

SOF

IN

DATA

ACK

SOF

out

Pachete de
date de la
dispozitiv
SYN

PID

PAYLOAD

CRC

DATA

ACK

Pachete de la
dispozitiv
SYN

PID

PAYLOAD

CRC

Fig.5.6. Transmiterea de cadre, la fiecare milisecund, de ctre hub-ul


central al USB.

174

Sorin Adrian Ciureanu

Cablul const din patru fire: dou pentru date, unul pentru
alimentare (5voli) i unul pentru mas. Sistemul de semnalare transmite un
0 ca tranziie a tensiunii i un 1 ca absen a unei tranziii de tensiune, astfel
c att timp ct dureaz 0-urile se genereaz un flux de pulsuri. Cnd se
conecteaz un nou dispozitiv I/E, hub-ul rdcin detecteaz acest
eveniment i ntrerupe sistemul de operare. Apoi sistemul de operare
interogheaz dispozitivul, ce este i ct din banda USB necesit. Dac
sistemul de operare decide c banda de trecere este suficient pentru
dispozitiv, el asociaz noului dispozitiv o adres unic (1-127) i ncarc
aceast adres i alte informaii n registrele de configurare din dispozitiv. n
acest mod, noi dispozitive pot fi adugate imediat., fr nici o alt
informaie din partea utilizatorului i fr s se instaleze noi plci ISA sau
PCI. Plcile neiniializate pornesc de la adresa 0, astfel c ele pot fi adresate.
Pentru a face cablarea mai uoar, multe dispozitive USB conin hub-uri
ncorporate, pentru a accepta dispozitive suplimentare USB. De exemplu un
monitor poate avea dou socluri de hub pentru a amplasa difuzoare stnga i
dreapta.
Din punct de vedere logic, sistemul USB poate fi vzut ca un set de
canale de bii, de la hub-ul central la dispozitivele I/E. Fiecare dispozitiv
mparte canalul su n cel mult 16 subcanale, pentru diferite tipuri de date
(audio, video..) . Pe fiecare canal datele merg de la hub-ul central la
dispozitiv sau invers. Nu exist trafic ntre dou dispozitive I/E.
La exact fiecare 1,000,05 ms, hub-il emite un nou cadru pentru a
menine toate dispozitivele sincronizate. Un cadru este asociat cu un canal
de bii i const din pachete, primul fiind de la hub-ul rdcin ctre
dispozitiv. Urmtoarele pachete din cadru pot, de asemenea, s fie n aceast
direcie sau pot merge napoi de la dispozitiv la hub.
n figura 5.6. se prezint o secven de patru cadre.. n cadrele 0 i 2
nu se efectueaz nimic, astfel c este necesar doar un pachet SOF (Start of
Frame), de nceput de cadru. Acest pachet este trimis totdeauna n toate
dispozitivele. Cadrul 1 este o interogare, de exemplu o cerere ca un
dispozitiv de scanare s returneze biii pe care i-a gsit n imaginea pe care o
scaneaz. Cardul 3 const din datele ce se transmit la un dispozitiv, de
exemplu la o imprimant.
USB suport patru tipuri de cadre: control, izocron, transfer de
cantiti mari de date (bulk) i ntrerupere:
-cadrele de control sunt utilizate pentru a configura dispozitive, a le
transmite comenzi i a le interoga despre starea lor;

Arhitectura calculatoarelor

175

-cadrele izocrone sunt pentru dispozitive n timp real cum ar fi


microfoane, difuzoare i telefoane care au nevoie s transmit sau s
accepte date la intervale de timp precise; ele au o ntrziere predictibil dar
nu permit retransmisia n cazul unei erori;
-cadrele de transfer de cantiti mari de date sunt pentru transferuri
mari sau de la dispozitive fr cerine de timp real, cum ar fi imprimantele;
-cadrele de ntrerupere sunt necesare deoarece USB nu suport
ntreruperi; de exemplu, n loc s avem o tastatur care s genereze o
ntrerupere ori de cte ori se apas o tast, sistemul de operare o poate
interoga la fiecare 50 ms pentru a prelua tastele apsate pn atunci.
Un cadru const din unul sau mai multe pachete, cteva, posibil, n
fiecare direcie. Exist patru tipuri de pachete:
-pachete de control (token) care sunt de la rdcin la un dispozitiv
i au rol de control al sistemului (de exemplu SOF, IN, AUT, SETUP);
-pachete de date (DATA) care sunt utilizate pentru a transmite pn
la 64 de octei de informaie n orice direcie; ele constau din 8 bii de
sincronizare (SYN), un tip de pachet de 8 (PYD), sarcina adic datele de
transmis (PAYLOAD) i CRC-ul(Cyclic Redundancy Code) de 16 bii
pentru a detecta erori;
-pachete de negociere care sunt de trei tipuri, ACK (pachetul anterior
a fost bine recepionat), NAK (s-a detectat o eroare CRC i STALL ( v rog
ateptai, acum sunt ocupat);
-pachete speciale.
La fiecare 1ms trebuie transmis un cadru de la hub-ul rdcin, chiar
dac nu este nimic de fcut. Cadrele 0 i 2 ( figura 5.6.) constau doar dintrun pachet SOF, indicnd c nu s-a fcut nimic.
Cadrul 1 este o interogare, astfel c el ncepe cu transmiterea
pachetelor SOF i IN de la calculator la dispozitivele I/E, urmate de un
pachet DATA de la dispozitiv la calculator. Pachetul ACK spune
dispozitivului c datele au fost recepionate. n cazul unei erori ctre
dispozitiv se va transmite un NAK i pachetul se va retransmite n cazul
transferurilor de cantiti mari de date ( dar nu i n cazul datelor izocrone).
Cadrul 3 este similar ca structur cu cadrul 1, cu excepia faptului
fluxul de date este de la calculator la dispozitiv.
Interconectarea unitilor componente ale calculatorului se face pin
una sau mai multe magistrale, o magistral fiind format dintr-un grup de
linii destinate transferului paralel de informaii de la una sau mai multe
surse la una sau mai multe destinaii. Numrul liniilor magistralei este egal

176

Sorin Adrian Ciureanu

de obicei cu lungimea cuvntului transferat. n figura 5.7 este dat un


exemplu de interconexiuni n calculatorul Pentium II clasic.
Magistralele utilizate pot fi unidirecionale sau bidirecionale. La un
moment dat, nu poate fi selectat dect o surs i una sau mai multe
destinaii. n cazul seleciei simultane a mai multor surse, rezultatul poate fi
imprevizibil. Selecia sursei sau a destinaiei se realizeaz cu multiplexoare
i decodificatoare. Multiplexorul specific sursa care depune informaia pe
magistral iar codificatorul selecteaz destinaiile care vor fi cuplate la
magistral.

Fig. 5.7. Diferite magistrale n arhitectura calculatorului


Pentium II: ISA, PCI, USB, locale. Magistralele mai late au banda de
trecere mai mare dect cele mai nguste.

Arhitectura calculatoarelor

177

BIBLIOGRAFIE
1. Michel Cruceanu, Architecture des ordinateurs, Miage,
Universit de Paris-Sud, 1995.
2. Jaques Guizot, Architecture des ordinateurs, DEUG Poly. Fr.
1996.
3. Andrew Tanenbaum, Organizarea structurat a calculatoarelor,
(traducere din ediia 4), Computer Press Agora, Tg. Mure, 1999.
4. Dorian Gorgan, Gh. Sebestyen, Structura calculatoarelor, Ed.
Albastr, Cluj-Napoca, 2000.
5. Baruch-Zoltan Francisc, Arhitectura calculatoarelor, Ed.
TODESCO, Cluj-Napoca, 2000.
6. Patrick Marcel, Architecture des ordinateurs, IUP CEIIInformatique et tlcommunications, Paris, 2001.
7. Vasile Lungu, Procesoare Intel.Programare n limbaj de
asamblare. Ed. Teora, Bucureti, 2001.
8. Lancelot Pecquet, Architecture des ordinateurs et systmes
dexploitation, DEUG MIAS, Universit de Paris XII, 2004.
9. Nicolas Delestre, Michel Maingeuenod, Architecture des
ordinateurs. Introduction l informatique. ASI Paris, 2004.
10. Rzvan-Daniel Zota, Elemente de arhitectura sistemelor de
calcul i operare, Ed. ASE, Bucureti 2005.
11. PH. Leray, Architecture des ordinateurs et systmes
dexploitation, INSA, Rouen, 2005
12. Ccile Germain, Daniel Etiemble, Architecture des Ordinateurs.
Deuxime partie., IUP Miage-FIIFO, 2005.
13. Dominique Present, Architecture des ordinateurs,(Photos), Dep.
SRC, IUT, Marne la Vall, 2005.

178

Sorin Adrian Ciureanu

14. David Simplot, Architecture des Ordinateurs, simplot


.fil.univ.lile1.fr. ,2005.
15. Jean-Jacques Schwarz, Architecture des ordinateurs, Eyrolles,
Paris, 2005.

Arhitectura calculatoarelor

179

CUPRINS
Pg.
1

NOIUNI INTRODUCTIVE...
1.1. SCHEMA DE BAZ A UNUI CALCULATOR.
1.2. SCHEMA NIVELELOR CONCEPTUALE ALE UNUI
CALCULATOR.
1.3. SCURT ISTORIC AL DEZVOLTRII CALCULATOARELOR...
1.3.1. Influena progresului tehnologic asupra dezvoltrii
calculatoarelor...
1.3.1.1. Generaia zero. Calculatoare mecanice
1.3.1.2. Generaia nti. Maini cu tuburi electronice.
1.3.1.3. Generaia a doua. Calculatoare cu tranzistori..
1.3.1.4. Generaia a treia. Calculatoare cu circuite integrate
1.3.1.5. Generaia a patra. V.L.S.I...
1.3.1.6. Generaia a cincia
1.3.2. Concepii noi n evoluia calculatoarelor.
1.3.2.1. Microprogramarea..
1.3.2.2. Inventarea sistemului de operare
1.3.2.3. Memoria Cache
1.4. TIPURI DE ARHITECTURI ALE CALCULATOARELOR
NUMERICE
1.4.1. Arhitectura von Neumann
1.4.2. Maina Turing.
1.5. CLASIFICAREA CALCULATOARELOR.
1.5.1. Taxonomia Flynn.
1.5.2. Taxonomia Wang..
1.5.3. Taxonomia Shore..
1.5.4. Clasificare comercial...
1.6. TRENDUL ACTUAL N ARHITECTURA CALCULATOARELOR
UNITATEA CENTRAL..
2.1. STRUCTURA UNITII CENTRALE..
2.2. CARACTERISTICILE UNITII CENTRALE

3
3
5
7
7
7
9
10
11
13

13
15
15
15
15
16
16
17
18
18
20
20
23
23
25
25
27

180

Sorin Adrian Ciureanu


2.2.1.
2.2.2.
2.2.3.
2.2.4.
2.3.

2.4.
2.5.

2.6.

2.7

Lungimea cuvntului 27

Frecvena ceasului 27
Numrul de instruciuni executate n unitatea de timp. 28
Gradul de paralelism 28
2.2.4.1. Paralelism la nivel de instruciuni (pipeline).. 29
2.2.4.2. Paralelism la nivel de procesor 32
SETUL DE INSTRUCIUNI... 32
2.3.1. Tipuri de instruciuni 33
2.3.2. Formatul unei instruciuni 33
2.3.3. Modul de adresare 34
UNITATE CENTRAL CABLAT 35
UNITATE CENTRAL CU MICROPROCESOR. 41
2.5.1. Schema general a unui procesor 41
2.5.2. Registrele microprocesorului 43
2.5.2.1
Registre generale. 43
2.5.2.2. Registre segment. 45
2.5.2.3. Registre IP i F. 46
2.5.3. Adresarea memoriei. Segmentarea.. 47
2.5.4. Formatul instruciunii.. 48
2.5.5. Moduri de adresare.. 49
2.5.5.1
Adresare direct 49
2.5.5.2. Adresare indirect. 50
2.5.5.3
Adresare indexat. 50
2.5.5.4. Adresare imediat. 51
2.5.5.5. Adresarea porturilor de I/E.. 51
2.5.6. Procesoare 286. 52
2.5.7. Procesoare 386. 53
2.5.8. Procesoare 486..53
2.5.9. Procesoare PENTIUM. 54
2.5.9.1. Microarhitectura familiei de procesoare PENTIUM 55
2.5.9.2. Unitatea de extragere i decodificare a
instruciunilor56
2.5.9.3. Unitatea de dispecerizare i execuie 57
2.5.9.4. Unitatea de retragere.59
UNITATE CENTRAL DE TIP RISC... 60
2.6.1. CISC versus RISC. 60
2.6.2. Setul de instruciuni... 61
2.6.3. Principiul de procesare pipeline ntr-un procesor RISC 62
2.6.4. Structura unui procesor RISC 64
2.6.5. Problema hazadurilor n procesoarele RISC. 65
2.6.5.1. Hazarduri structurale.65
2.6.5.2. Hazarduri de date..66
2.6.5.3. Hazarduri de ramificaie... 72
PROCESOARE SUPERSCALARE. 76
2.7.1. Principiul arhitecturii superscalare. 76
2.7.2. Hazarduri n arhitectura superscalar 79
2.7.2.1. Hazarduri structurale. Dependena de resurse. 79

Arhitectura calculatoarelor
2.7.2.2.

Hazarduri de date.

181

79
2.7.2.3. Hazarduri de control. 81
2.7.3. Arhitectura superscalar TOMASULO. 83
2.7.4. Arhitectura tipic a unui procesor superscalar...89
UNITATEA DE MEMORIE.. 91
3.1. MEMORIA FIZIC 91
3.2
CLASIFICAREA CIRCUITELOR DE MEMORIE 93
3.2.1. Clasificarea dup volatilitate..93
3.2.2. Clasificarea dup modul de pstrare a informaiilor..94
3.2.2.1. Memoria RAM static.. 94
3.2.2.2. Memoria RAM dinamic.. 94
3.2.3. Structura unitii de memorie.95
3.2.4. Tipuri de circuite de memorie96
3.2.4.1. Circuite FPM DRAM97
3.2.4.2
Circuite EDO DRAM... 97
3.2.4.3. Circuite BEDO DRAM.97
3.2.4.4. Circuite S DRAM. 98
3.2.4.5. Circuite SGRAM.. 99
3.2.4.6. Circuite WRAM99
3.2.5. Ierarhii de memorie..99
3.2.5.1. Memorii SET UP.. 100
3.2.5.2. Memorii BIOS.. 102
3.2.5.3. Set de registre generale. 102
3.2.5.4. Memoria CACHE. 103
3.2.5.5. Memoria RAM..109
3.2.5.6. Memoria virtual...110
UNITATEA DE INTRARE/IEIRE 111
4.1. SCHEMA UNUI SISTEM DE INTRARE/IEIRE111
4.1.1. Structura hard a unui sistem de I/E111
4.1.2. Structura soft a unui sistem de I/E. 112
4.1.2.1. Rutine de tratare a ntreruperilor...113
4.1.2.2. Drivere.. 114
4.1.2.3. Programe sistem independente de dispozitive 117
4.1.2.4. Primitive de nivel utilizator.. 118
4.2. TRANSFER DE DATE NTR-O UNITATE DE I/E 118
4.2.1. Transfer prin program 118
4.2.2. Transfer prin ntreruperi 119
4.2.3. Transfer direct prin DMA.. 120
4.2.4. Transfer prin procesor de I/E. 121
4.2.5. Instruciuni virtuale de I/E. 122
4.2.5.1. Fiiere123
4.2.5.2. Implementarea instruciunilor de I/E 125
4.2.5.3. Instruciuni pentru gestionarea cataloagelor 128
4.3. PROCESAREA INTRRILOR/IEIRILOR. 129
4.3.1. Mecanismul ntreruperilor. 130
4.3.2. ntreruperi i excepii.132
4.3.2.1. Situaii excepionale 132

182

Sorin Adrian Ciureanu


4.3.2.2.
4.4.

Gestiunea ntreruperilor 134

PERIFERICE DE I/E..136
4.4.1. Memorii externe.137
4.4.1.1. Principii fizice de stocare a informaiei 137
4.4.1.2. Hard discuri...139
4.4.1.3. CD-ROM-uri.144
4.4.1.4. DVD-uri147
4.4.2. Periferice care nu stocheaz informaia. 149
4.4.2.1. Tastatura149
4.4.2.2. Sistemul de afiaj..149
4.4.2.3. Imprimanta152
5
MAGISTRALE. 157
5.1. ARBITRAJ.. 157
5.2. TRANSFER DE DATE... 159
5.2.1. Magistral sincron159
5.2.2. Magistral asincron.. 160
5.3. EXEMPLE DE MAGISTRALE.. 161
5.3.1. Magistrala ISA...162
5.3.2. Magistrala PCI... 162
5.3.2.1. Ameliorarea performanelor.. 163
5.3.2.2. Adresarea magistralei PCI 164
5.3.2.3. Semnalele magistralei PCI165
5.3.2.4. Tranzacii pe magistrala PCI.167
5.3.3. Magistrala USB..168
BIBLIOGRAFIE173

Você também pode gostar