Documente Academic
Documente Profesional
Documente Cultură
1. Introducere
nc din cele mai vechi timpuri, omul a fost nevoit s efectueze calcule. Odat cu creterea
complexitii calculelor, s-au pus n eviden dou deficiene majore ale calculului manual:
- viteza de efectuare a calculelor, care este limitat, astfel anumite probleme nu pot fi
rezolvate ntr-un timp rezonabil;
- greeala, care intervine iminent la calculele umane.
Putem compara pentru nceput procesul de calcul manual (a) i cel al mainii (b):
Creierul
Control Instruciuni
Hrtia
Execuie Date
a)
Calculator
de buzunar
Unitatea
central b)
de prelucrare
Unitatea Instruciuni
de control
Unitatea Echipamente
de memorie de intrare/ieire
Unitatea
aritmetic Date
i logic
Fig. 1.1.
Hrtia este folosit pentru stocarea informaiei care poate fi algoritm, respectiv dat.
Putem distinge clar cele dou funcii ale creierului uman: cel de interpretare a informaiei i
executarea diverselor funcii, aceasta din urm putnd fi preluat de diferite echipamente
ajuttoare (abac, calculatoare mecanice, calculatoare de buzunar etc).
Elementele caracteristice ale calculatoarelor snt similare cu cele din modelul uman.
Unitatea de memorie stocheaz instruciuni i date. Unitatea central de prelucrare conine o
unitate de control, care interpreteaz i realizeaz secvenierea instruciunilor, i o unitate
aritmetic i logic, care execut secvene de instruciuni.
Diferena major dintre cele dou sisteme const n reprezentarea informaiei. Omul
folosete un limbaj cu un numr foarte mare de simboluri, i reprezint numerele (n mod
uzual) n baza 10. Calculatoarele moderne, pornind de la natura fizic a elementelor
electronice, reprezint informaia n baza 2, i reduce numrul simbolurilor n mod esenial.
4
Comunicarea dintre main i om, conversia informaiei din limbajul main n limbajul uman
este realizat de echipamentul de intrare-ieire.
Pe baza acestor componente putem construi un model abstract.
Obiecte reflectante
Semantic
<Semn>, <Semn>
sintax Mesaj
<Semn>, <Semn>
Pragmatic
Sistem
interpretor
Informaie
Fig. 1.2.
Semnul este un element, obiect sau fenomen capabil de a reflecta nsuirile altor obiecte,
s in locul acestora. Sintaxa precizeaz regulile de mbinare ale semnelor pentru a forma
mesaje. Semantica reprezint ansamblul regulilor de reprezentare, de interpretare a cuvintelor
unui limbaj. Sistemul interpretor i schimb starea n funcie de mesajul primit i a strii
curente. n sistemul interpretor putem distinge sistemul reprezentor, care reprezint toate
semnele i mesajele primite; i sistemul procesor, care realizeaz transformrile n sistemul
reprezentor.
Un model abstract de calcul reprezint maina Turing.
Procesor
Cap de citire/scriere
Fig. 1.3.
2. Evoluia calculatorelor
Primul calculator funcional a fost construit n anul 1642 de filozoful Blaise Pascal (n
cinstea lui un limbaj de programare i poart numele). Aceasta era o main cu contoare
mecanice care efectua adunri i scderi n baza zece. n jurul anului 1671, filozoful Gottfried
Leibniz a adugat mainii lui Pascal un modul de nmulire-mprire, dar acest calculator
mecanic cu patru operaii a rmas o curiozitate tiinific pn n secolul XIX, cnd a nceput
producia n serie a calculatoarelor de acest gen.
n 1823, matematicianul Charles Babbage a nceput construcia mainii difereniale, care a
fost conceput pentru realizarea automat a tabelelor matematice necesare n navigaie.
Principiul de funcionare a acestor maini era aproximarea funciilor pe baza diferenelor finite.
Calculatorul era capabil de a rula un singur algoritm. Din necesitatea de a crea un calculator de
uz general, n 1834 el a conceput maina analitic. Acesta consta din 4 uniti: unitatea de
stocare, unitatea de calcul, unitatea de intrare (cartele), unitatea de ieire (imprimanta i
perforatorul de cartele). Unitatea de calcul putea efectua cele 4 operaii de baz, dar operaia
urmtoare n fiecare pas era citit de pe cartelele de operaii, iar operanzii corespunztori snt
selectai din memorie pe baza adresei date de cartelele de variabile.
Unitatea Imprimant
aritmetic Date Memorie
i logic i perforator
Instruciuni
Cartele Cartele
cu operaii cu operanzi
Program
care realizau o legtur ntre dou elemente, dac era necesar comunicarea. Era alctuit din
18000 tuburi i 1500 relee, cntrind 30 de tone. Executa 300 de nmuliri pe secund.
Pornind de la ENIAC, al crui consultant a fost, Jnos Neumann a proiectat primul
calculator cu program memorat, n 1945. Programul era reprezentat n form digital i nscris
n aceeai memorie cu datele. Acest arhitectur denumit i main von Neumann a
determinat direcia de evoluie a calculatoarelor.
Primul calculator construit pe acest principiu a fost EDVAC, care a devenit operaional n
1951.
Memoria
Unitatea secundar
central
de prelucrare
Unitatea
aritmetic Consol
i logic
Memoria
principal
Unitatea Cititor
de control de cartel
Imprimant
i perforator
Echipamente
de intrare/ieire
nainte de execuia unui program, toate instruciunile i datele trebuiau transferate din
memoria secundar (band magnetic sau cartele) n memoria principal. Instruciunile
aritmetice aveau urmtorul format: A1 A2 A3 A4 OP, unde A1 i A2 reprezint adresa
operanzilor din memoria principal, A3 adresa rezultatului, A4 adresa instruciunii urmtoare,
iar OP operaia codificat. n cazul instruciunilor de salt, cmpurile primesc o alt semnificaie.
Dac coninutul locaiei de memorie adresat de A1 este mai mare sau egal ca cel adresat de A2,
adresa instruciunii urmtoare este A3, n caz contrar A4.
n anul 1946 Neumann i colegii lui de la Princeton Institute au construit un nou
calculator, denumit IAS, care ulterior a fost considerat calculator de generaia I. Instruciunile
pentru acest calculator conineau un singur cmp de adrese, formatul lor fiind OP A. Din acest
motiv, se foloseau registre pentru stocarea operanzilor, a rezultatului i a adresei instruciunilor
ulterioare.
Execuia instruciunilor se realizeaz n unitatea aritmetic i logic, care primete
operanzii din acumulator (AC), din registrul de multiplicare (MQ), respectiv din registrul de
date (RD). Rezultatul va fi stocat n acumulator. Circuitul de control primete date din registrul
de instruciuni (RI) pe care le decodific. Operaiile din sistem snt sincronizate de un ceas
intern. Registrul de adrese (RA) conine adresa operandului, care va fi transferat totdeauna
prin intermediul registrului de date (RD). Se presupune la operare c instuciunile unui
program snt depuse la locaii consecutive de memorie. Numrtorul de program (PC) conine
adresa instruciunii urmtoare, care n mod normal este incrementat dup fiecare operaie, iar
8
n cazul operaiei de salt, va fi ncrcat din registrul de adrese. Deoarece se extrag dou
instruciuni deodat pentru a reduce numrul de accese la memorie, instruciunea care nu va fi
imediat executat se stocheaz n registrul buffer instruciuni (RBI), iar cealalt instruciune n
registrul de instruciuni, unde va fi decodificat.
AC MQ
RD
Instruciuni
i date
RBI PC
Memoria
principal
RI RA
Adrese
Circuite de . Semnale de
control . control
.
Unitatea de control
Procesor
UCP Memoria Consola
de I/O
Fig. 2.4.
i capacitilor celorlaltor calculatoare. Azi exist deja tehnica necesar: fibrele optice snt
capabile de a transmite 109 bii pe secund; iar comunicaiile prin satelit permit chiar i
conectarea calculatoarelor portabile la sistem. Datorit acestei direcii de dezvoltare,
prognozele prevd apariia aa-numitelor pericalculatoare, care vor avea dimensiuni i pre
redus, i o singur funcie - de a se lega de sistem. Cerinele pieii legate de pericalculatoare: s
fie uor de comandat (verbal), iar afiarea imaginii-rspuns s fie de calitate ridicat. Spre
aceast direcie arat staiile multimedia dezvoltate n ultimii ani.
12
Magistral intern
c1 c2
c3 c4
R1 R2
c5 c6
c8
c7
Unitate c10 R3
c9 funcional
c11
Fig. 3.1.
foarte flexibil. Unitatea funcional este un circuit combinaional, care realizeaz operaiile
aritmetice i logice.
Partea de control trebuie s asigure secvena semnalelor de control (c), corespunztoare
instruciunii descompuse n microoperaii. Aceste semnale de control selecteaz cile de date i
operaia cerut din unitatea funcional. Semnalele de control acioneaz prin blocarea-
deschiderea cilor de date n punctele de control indicate prin cerc pe schem.
Realizarea fizic a magistralelor interne
a) prin pori:
Fig. 3.2.
Decodificator
Tact Tact
c1
Registru A Registru B
OE 8 bii OE 8 bii
Registru C Registru D
OE 8 bii OE 8 bii
Tact
c2
Tact
Decodificator
Fig. 3.3.
14
Structura de baz a UCP este cea propus de Neumann (fig. 2.3.), care conine un set
minim de registre i circuite adiionale, capabil de a executa un set redus de instruciuni cu un
singur mod de adresare. Acumulatorul (un registru al UCP) joac un rol central, coninnd unul
dintre operanzi i rezultatul operaiei.
Structura Neumann a putut fi extins prin urmtoarele ci:
1. Includerea mai multor registre de uz general, capabile de a stoca operanzi i adrese.
Aceste registre pot fi cuplate la mai multe magistrale interne.
PC
SP
IR
-1
A latch B latch
Magistrala
de adrese
RA
Magistrala
de date
RD
MUX
c1 ALU cy
c2 z
Fig. 3.4.
Extragerea instruciunii
Descompunerea n microoperaii
Execuie
X Y
NOT
c1
XOR
OR Decodificator c2
AND
Fig. 3.6.
Acumulator
RI
Flag D
zero Q Q
JZ
JNZ Decodificator
ncrcare
paralel
PC
Fig. 3.7.
17
Circuite de adunare
Snt realizate cu sumatoare pe un bit, definite de urmtoarele relaii:
zi = xi yi ci+1
ci = xiyi + xici+1 + yici+1
n care ieirile snt suma (z i) i transportul (ci), iar intrrile datele (xi, yi), i transportul
de la rangul inferior (ci+1).
Zi (suma)
Ci
(ieire transport)
+ Ci+1
(intrare transport)
Xi Yi
Fig. 3.8.
Pentru a aduna dou numere de lungime arbitrar, putem folosi sumatoare seriale.
D Q
Tact
T Q
C
Reset
Zi
Ci
+ Ci+1
Xi Yi
Fig. 3.9.
Biii de intrare se aplic sumatorului la fiecare semnal de tact, ncepnd cu rangul cel mai
puin semnificativ. Transportul generat se stocheaz ntr-un bistabil D, i se aplic la sumator n
tactul urmtor.
Pentru a realiza o adunare mai rapid, se folosesc sumatoare paralele:
Z0 Zn-2 Zn-1
C0
+ C1
...
Cn-2
+ Cn-1
+ Cin
Fig. 3.10.
18
Transportul generat de un sumator reprezint intrare n urmtorul element, din care motiv
timpul de calcul este egal cu timpul de propagare al transportului prin ntregul lan de
sumatoare. Pentru a mrii viteza de calcul, se folosesc circuite speciale de calcul al tranportului
anticipat, alctuite din circuite combinaionale, care genereaz simultan transportul pentru mai
multe sumatoare. Aceste circuite se bazeaz pe urmtoarele ecuaii:
gi = xiyi
pi = xi yi
c3 = g3 + p3cin
c2 = g2 + p2g3 + p2p3cin
c1 = g1 + p1g2 + p1p2g3 + p1p2p3cin
c0 = g0 + p0g1 + p0p1g2 + p0p1p2g3 + p0p1p2p3cin
Acest principiu poate fi extins pentru mai muli bii, dar circuitul devine mult mai complex.
n acest caz circuitul nu se mai poate realiza cu pori, ci cu PLA-uri.
Transport anticipat
G0 P0 G1 P1 G2 P2 G3 P3
Z0 Z1 Z2 Z3
C0
+ C1 + C2 + C3 + Cin
X0 Y0 X1 Y1 X2 Y2 X3 Y3
Fig. 3.11.
Circuite de nmulire
Pentru un numr redus de bii, circuitele de nmulire pot fi realizate cu circuite
combinaionale, obinndu-se astfel viteze mari de calcul.
Fig. 3.12. reprezint circuitul care realizeaz nmulirile pe un bit, a cror ieiri se aplic
sumatoarelor din fig. 3.13. pentru a obine rezultatul nmulirii a dou numere pe trei bii.
Y0 Y1 Y2
X2
Fig. 3.12.
19
X1Y0
+ X1Y1
+ X1Y2
X0Y0
+ X0Y1
+ X0Y2
+ +
Z4 Z5
Z0 Z1 Z2 Z3
Fig. 3.13.
1 Start
A Q M
A 0
Numrtor 0
M multiplicand
Sumator
paralel Q multiplicator
Q7
OUTBUS Da
8 Q(7) = 0 ?
INBUS
8 Nu
A A+ M Num. Num. + 1
OUTBUS Q
Numrtor a) End b)
Magistrala de intrare
E1 E2 M1 M2 Compararea exponenilor
i alinierea mantisei
E1 - E2
Sumator 1 Deplasare 1
Adunarea mantiselor
Sumator 2
R
Detectare 0
E3 M3
Magistrala de ieire
Pentru a mrii viteza de calcul, se folosesc pipeline-uri aritmetice. Aceste devin rentabile,
dac snt alimentate continuu cu operanzi, de exemplu n cazul prelucrrii vectorilor. Cei patru
pai ai adunrii pot fi implementai ca patru nivele ale unui structuri pipeline. Diferena fa de
structura precedent reprezint regitrii care au fost ntrodui pentru a separa nivelele. Aceast
structur permite prelucrarea simultan a patru perechi de operanzi (fiecare pereche realizeaz
un alt pas al adunrii), i obinerea unui rezultat la fiecare pas. Regitrii avnd capacitatea de a
stoca un operand, trecerea de la un nivel la altul se realizeaz comandat de un semnal de tact,
obinndu-se un pipeline sincron. Frecvena semnalului de tact este determinat de timpul cel mai
lung de parcurgere al unui nivel, motiv pentru care sumatoarele, circuitele de deplasare i
circuitul detector de zero trebuie realizate n versiunea cea mai rapid i pe ct posibil cu timp
de parcurgere egal, pentru a evita timpii de ateptare.
Magistrala de intrare
E1 E2 M1 M2
Compararea exponenilor
Sumator 1
E4 E5 M4 M5
Alinierea mantisei
Deplasare 1
E6 M6 M7
Adunarea mantiselor
Sumator 2
E7 R
Detectare 0
Normalizarea rezultatului
Sumator 3 Deplasare 2
E3 M3
Magistrala de ieire
Unitatea de control
Secvenierea instruciunilor
Majoritatea instruciunilor unui program au un singur succesor. Din acest motiv, cea mai
simpl metod de implementare a secvenierii instruciunilor se realizeaz prin numrtoare de
program (PC), care se incrementeaz automat dup decodificarea unei instruciuni. n aceast
situaie nu este necesar specificarea adresei instruciunii urmtoare n codul instruciunii, dect
n situaii speciale: instruciuni de salt, apel de subrutin, ntreruperi. n cazul instruciunii de
salt, unitatea de control asigur ncrcarea paralel a numrtorului de program cu adresa
specificat n formatul instruciunii. Cnd se apeleaz o subrutin, adresa instruciunii
urmtoare apelului de subrutin este salvat automat n stiv de unitatea de control, se ncarc
numrtorul de program cu adresa de nceput a subrutinei; la instruciunea de revenire din
subrutin (RETURN), unitatea de control scoate adresa salvat n stiv, i o ncarc n
numrtorul de program.
Interpretarea instruciunilor
Se pot defini patru categorii de semnale:
- C''in - semnale de intrare de la alte uniti de control sau de la sistemul supervizor -
dac exist (semnalele de tip START, STOP i cele de sincronizare cu alte
componente);
- C''out - semnale de ieire spre alte uniti de control, indicnd starea UCP-ului
(operaie n curs, operaie terminat);
- C'in - semnale de intrare de la unitatea de procesare, care influeneaz direct
semnalele de ieire (semnale de eroare, flaguri, depire);
- C'out - semnale de ieire care controleaz fluxul de date i selecteaz operaia prin
unitatea de procesare.
Funcia de baz a unitii de control este generarea acestor semnale C'out.
C''in C''out
Unitatea de
control
C'in C'out
Intrare Ieire
date Unitatea de date
procesare
Fig. 3.17.
Start Start
S 1 Tact
Stop
Numrtor Numrtor secvenial
Stop modulo k
R 0 Reset Tact modulo k
Reset
Tact
...
Validare ...
Reset Decodificator 1/k
Perioada ...
a) tactului b)
S0
Start
Da
Q(7) = 0?
S1 C1 Nu Faza 1
S3 C3 S6 C6
A 0
A A+ M Mag. ie. A
M Mag. intr.
S2 C2
S4 C4 S7 C7
Num. 0
Deplas. A,Q Mag. ie. Q Faza 2
Q Mag. intr.
S0
Da
Num. = 7? Stop
Nu Faza 3
S5 C5
Num. Num. + 1
Fig. 3.19.
fi sincronizai tot cu aceleai faze. Cele trei bistabile FFi vor face distincia dintre pai. Toate
semnalele care apar n blocuri de decizie, reprezint intrri de la unitatea de procesare.
Start
Stop
Tact Numrtor secvenial
modulo 3
Reset
ncrcare M
START
S 1 C1
FF1
ncrcare Q
R 0
C2
Q(7)
Adunare
S 1 C3
FF2
Deplasare
R 0
C4
NUM.
Incrementare
C5
Ieire A
S 1 C6
FF3
Ieire Q
R 0
C7
END
Fig. 3.20.
Start
No
UCP activ? Stop
Yes
AR PC
READ M
PC PC + 1
IR DR(OP)
No No No No No No No
LOAD? STORE? ADD? AND? JMP? JZ? NOT?
Yes
READ M DR AC READ M READ M
Fig. 3.21.
C0
C1 ALU
C2
C3
C4 AC C12
Memoria C5 C6
D
R
C7 C8 C11
PC C9 IR
A
R C10 C0
AC = 0 Unitatea de C1
control ...
C12
LOAD
STORE
ADD
AND
Decodificator JMP
de instr. Circuit combinaional
JZ
NOT
RSHIFT
IR Z C0 C1 ... C12
Cele apte stri pot fi codificate pe trei bii, care mpreun cu cele dou intrri (Q(7),
Num.) vor forma cele cinci linii de adrese. Din zece linii de date apte reprezint
semnale de control, iar trei semnale de stare. Se alege un ROM cu 32 (2 5) de locaii
cu 10 bii, i un registru de adrese (cu 5 bii), a crei ieiri se modific sincron cu
semnalul de tact.
a) b) c)
Fig. 3.25. Microinstruciuni necodificate (a), complet codificate (b) i parial codificate (c)
28
Un numr mare de intrri are ca urmare creterea numrului de locaii n ROM. Intrrile
fiind relativ rar testate, valoarea lor n majoritatea strilor este indiferent. Din acest motiv
coninutul mai multor locaii din memorie este identic. O alt posibilitate pentru a specifica
adresa memoriei este folosirea numrtorului de microprogram (PC). Astfel adresa
instruciunii urmtoare va fi coninut de PC, i nu trebuie specificat n mod explicit, dect
la instruciunile de salt. Testarea intrrilor n cazul instruciunilor de salt condiionat se
realizeaz cu ajutorul unui multiplexor (MUX), condiia de selectare fiind nscris n
microinstruciune.
Exemplu: Specificarea condiiei de selectare pentru dou instruciuni de salt condiionat.
s0 s1 interpretare
0 0 fr salt, numrtorul de PC va fi incrementat automat
0 1 salt dac intrarea v1 = 1
1 0 salt dac intrarea v2 = 1
1 1 salt necondiionat
n cazul instruciunilor de salt, dac condiia este indeplinit, PC va fi ncrcat paralel cu
adresa de salt specificat n microinstruciune. Datorit faptului c instruciunile de salt nu
conin cmpuri de control, cmpul de adrese i cmpul de control pot fi suprapuse.
0 0
a) b)
START
Tact
Adresa de salt
0 0 Reset
Q(7) 1 ncrcare PC
MUX
Num. 2
1 3
Selectare ROM
condiie
CMDR
Decodificator
END
Semnale de control
Fig. 3.27.
Fig. 3.28.
Unitatea de control pentru UCP simplificat (vezi fig. 3.22.) reprezint de fapt un
emulator al celor opt tipuri de instruciuni. Fiecare dintre ele are o parte comun de extragere,
realizat de microprogramul de la adresa FETCH, dup care microprogramul se continu de la
o adres care este dependent de coninutul registrului de instruciuni. Se poate folosi, de
exemplu, un PLA care genereaz adresa de intrare a microprogramului, n funcie de tipul
instruciunii. Un bit al cmpului de selecie asigur microinstruciunea salt la IR. Programul
pentru acest emulator poate fi descris n form simbolic:
FETCH: AR PC;
30
READ M;
PC PC + 1, IR DR(OP);
salt la IR;
LOAD: AR DR(ADR);
READ M;
AC DR, salt la FETCH;
STORE: AR DR(ADR);
DR AC;
WRITE M, salt la FETCH;
ADD: AR DR(ADR);
READ M;
AC AC + DR, salt la FETCH;
AND: AR DR(ADR);
READ M;
AC AC DR, salt la FETCH;
JUMP: PC DR(ADR), salt la FETCH;
JUMPZ: dac AC 0, salt la FETCH;
PC DR(ADR), salt la FETCH;
COMP: AC NOT AC, salt la FETCH;
RSHIFT: RIGHT-SHIFT (AC), salt la FETCH;
n cazul n care se extinde setul de instruciuni, de exemplu cu o instruciune de tergere a
acumulatorului (CLEAR), nu trebuie modificat structura hardware, ci se adaug doar o
secven la microprogram:
CLEAR: DR AC;
AC NOT AC;
AC AC DR, salt la FETCH;
31
Registru instruciuni
Cod instruciune
PLA
Adresa de salt
MUX
Incrementare
0 0
AC = 0 1 ncrcare PC Reset
MUX
2
1 3
Selectare
condiie ROM
CMDR
Decodificator
Semnale de control
4. Organizarea memoriei
Memoria unui sistem de calcul poate fi de trei tipuri:
- memoria intern a procesorului - cu dimensiuni foarte reduse, este cea mai rapid -
se folosete la stocarea temporar a instruciunilor i datelor (de ex. registre);
- memoria principal (RAM) - folosit la stocarea instruciunilor i datelor, fiind activ
doar n timp ce calculatorul lucreaz - CPU are acces direct la locaiile lui;
- memoria secundar - are capacitate mare de stocare, dar este foarte lent - conine
datele care snt folosite temporar (de ex. disc magnetic).
Dup modul de acces, se pot distinge:
- memorii cu acces aleator (RAM) - timpul de acces la orice locaie de memorie este
acelai, indiferent de poziie (adres);
- memorii cu acces serial - accesul la o locaie de memorie se realizeaz ntr-o ordine
predeterminat, timpul de acces difer n funcie de poziie, i snt caracterizate
de timpul de cutare.
D2
D1
D0
D Q D Q D Q
Cuvnt 0
CK CK CK
D Q D Q D Q
Cuvnt 1
CK CK CK
D Q D Q D Q
A1
A0 Cuvnt 2
CK CK CK
D Q D Q D Q
Cuvnt 3
CK CK CK
CS
WR D2
D1
D0
RD
RAM-ul este organizat pe cuvinte. Citirea i scrierea datelor se realizeaz simultan la toi
biii care formeaz cuvntul. O structur posibil pentru RAM este prezentat n fig. 4.1.
Semnalul de selecie (CS), format din restul liniilor de adrese, condiioneaz operaiile de citire
i scriere pentru ntreaga memorie. Liniile de adrese (A0, A1) selecteaz cuvntul dorit. Ieirile
vor fi realizate cu circuite three-state, astfel pot fi cuplate direct pe magistrala de date.
Semnmalele de citire i scriere (RD, WR) snt generate de procesor la executarea
instruciunilor corespunztoare.
Tact Tact
Magistrala Magistrala
de adrese Adresa locaiei citite de adrese Adresa locaiei scrise
Magistrala Magistrala
Date Date
de date de date
RD WR
c) Ciclu de citire
T1 T2 TW T3
Tact
Magistrala
de adrese Adresa locaiei citite
Magistrala Date
de date
RD
READY
Fig. 4.2. Ciclu de citire (a.), ciclu de scriere (b.) i ciclu de citire cu stri de ateptare (c.)
Adresa locaiei ce urmeaz a fi citit sau scris trebuie trimis pe magistrala de adrese de
ctre UCP nainte de a genera semnalele de comand corespunztoare, pentru a putea fi
decodificate. Datorit diferenei vitezei de lucru dintre UCP i memorii, exist situaii cnd
memoria nu poate fi citit n timpul cerut. n aceste cazuri memoria poate cere intercalarea
unor stri de ateptare prin activarea liniei READY. Aceast linie este testat de UCP n T 2.
Dac este activ, se intercaleaz o stare de ateptare (T W), la sfritul creia linia este din nou
testat. Ciclul se repet pn cnd memoria dezactiveaz aceast linie, dup care urmeaz
citirea propriu-zis.
Exist posibilitatea ca dou procesoare s aib acces la aceai locaie de memorie printr-o
organizare special, denumit memorii cu dublu port.
INT INT
RD / WR RD / WR
Fig. 4.3.
34
Construcia acestor memorii permite citirea lor simultan de ctre dou procesoare, prin
dublarea registrelor de ieire. Dac un procesor a nceput s scrie n memorie, se blocheaz
scrierea sau citire de ctre cellalt procesor, care va intra n stare de ateptare prin activarea
liniei READY. Logica de generare a ntreruperilor este opional, i este folosit pentru
sincronizarea procesoarelor. n cazul n care un procesor a scris o locaie de memorie, cellat
procesor va primi un semnal de ntrerupere pentru a iniia citirea mesajului.
Dac spaiul de memorie adresat direct de UCP este prea mic (16 linii de adrese - 64
kbyte), exist mai multe metode de extindere a capacitii de memorie.
Organizare n pri suprapuse (overlay; rezolvare prin soft)
Programul i datele snt mprite de programator pentru a le organiza n modul overlay.
Partea principal a programului, care rspunde i de gestionarea prilor, este permanent n
memoria operativ, dar la un moment dat doar un singur overlay este ncrcat n memoria
principal, restul fiind stocate n memoria secundar. Cnd se cere o dat dintr-o parte extern,
programatorul va avea n vedere ca aceea parte s fie ncrcat n memoria principal. Dac se
modific datele din memoria principal, aceea parte trebuie suprascris i n memoria principal.
Organizare n blocuri suparpuse (rezolvare prin hard)
Exist mai multe blocuri de memorii fizice, toate cuplate la aceleai adrese. O logic de
selectare a blocurilor va asigura adresarea doar unui singur bloc de memorie la un moment dat.
Acest circuit de selectare este cuplat de UCP ca un periferic, adic operaia de selectare este
realizat de o instruciune OUT.
Selectare bloc n
Selectare bloc 2
... Selectare bloc 1
Lolgica de
Memorie Memorie Memorie
selectare bloc 0 bloc 1 ... bloc n
blocuri
Mag. adrese
Mag. date
UCP
Mag. comand
Fig. 4.4.
Dezavantajul acestei metode, ca urmare a mpririi rigide n blocuri, este lipsa posibilitii
de comunicare ntre blocuri. Datele dintr-un bloc nu pot fi citite de un program care se afl
ntr-un alt bloc. Din acest motiv, doar o parte a memoriei principale va fi organizat n acest
mod, iar partea care este comun asigur comunicarea.
Adresare indexat
Fa de metoda precedent, la acest organizare a memoriei, logica de selectare a
blocurilor este realizat de UCP prin schimbarea modului de adresare. Adresa logic va fi
mprit n dou cmpuri: index i deplasament. Prin cmpul index se selecteaz una dintre
registrele index din UCP. Registrul selectat conine adresa de nceput al unui bloc de memorie.
Deplasamentul va indica adresa locaiei din cadrul blocului de memorie selectat.
35
Adresa logic
Adresa din cadrul blocului
Index Deplasament
Memorie ...
Memorie ... ... Memorie ...
bloc 0 bloc 1 bloc n
Registre index
Adresa de ncep. bl. 7
Fig. 4.5.
din cauza golurilor, automat se reorganizeaz memoria principal, micnd toate segmentele
pentru compactare. Operaia, numit relocare dinamic, necesit i actualizarea tabelei de
segmente.
S3 S3 S3 S3
S1 S1
S4
S2 S2 S2 S5 S2 S5
S4 S4
Fig. 4.6.
Aceast reorganizare dureaz n timp, dar poate fi evitat prin combinarea metodei de
segmentare i paginare. n acest caz segmentele snt compuse din mai multe pagini mici, de
aceeai dimensiuni.
Memorii asociative
Una din problemele importante este cutarea unei date n memorie. La memoriile clasice,
aceasta se realizeaz prin citirea succesiv a fiecrei locaii de memorie, i compararea lui cu
data cutat. Memoriile asociative, adresabile prin coninut, asigur cutarea simultan a datei
cerute n ntreaga zon de memorie. De obicei, numai o parte a coninutului (cmpul cheie) este
folosit n cutare, restul informaiei poate fi citit dup ce s-au gsit locaiile. Un circuit de
selectare va asigura citirea secvenial a locaiilor la care s-a constatat cioncidena cmpului
cheie.
Celula de 1 bit al memoriei asociative const dintr-un bistabil de tip RS, folosit pentru
stocarea datei, i un circuit de detectare a coincidenei.
A WR
Fig. 4.7.
nscrierea se realizeaz prin aplicarea adresei (A), a datelor de intrare (I), activarea liniilor
de validare nscriere (WR) i validare intrare (C). La citire se aplic adresa i se dezactiveaz
liniile de validare intrare i validare nscriere, i se obine data la ieire (O). Data cutat se
aplic la intrare, se activeaz linia de validare intrare, adresele i validare nscriere snt
dezactivate, iar la ieirea de coinciden (M) se obine 0 dac coninutul celulei corespunde cu
37
cea cutat. Ieirea de coinciden provine de la o poart cu colector n gol, pentru a putea fi
legat mpreun cu ieirile asemntoare din celelalte celule, realiznd un I cablat.
Pentru a realiza din celule pe 1 bit o memorie asociat organizat pe cuvinte de lungime
fix, liniile de adres, de validare nscriere i de coinciden al unui cuvnt vor fi legate
mpreun; la fel i liniile de validare intrare, de intrare i de ieire de acelai rang de la toate
locaiile memoriei.
A0
A1
A WR A WR A WR
C O C O C O
Cuvnt 0
I M I M I M
M0
WR
A WR A WR A WR
C O C O C O
Cuvnt 1
I M I M I M
C0 M1
C1
C2
I0 O0 I1 O1 I2 O2
Liniile de validare intrare C0, C1, C2 vor fi activai numai pentru bitul care intervine n
cutare. Liniile de coinciden vor fi n zero logic numai dac toi biii unui cuvnt care intervin
n cutare vor coincide cu coninutul locaiei.
Intrare
Registru
de intrare
Registru masc
Cheie
Coinciden
Memorie Selecie Circuit
asociativ de selecie
Registru
de ieire
Ieire
Fig. 4.9.
38
Cutarea unui cuvnt se realizeaz simultan la toate cuvintele memoriei. Registrul masc
va activa liniile de validare intrare numai la biii corespunztori cuvntului cheie. Circuitul de
selecie are rolul de a genera adrese succesive n cazul n care exist mai multe locaii a cu un
coninut identic cu cel cutat. Registrul de ieire va avea nscris, pe rnd, coninutul complet al
locaiilor la care s-a gsit coinciden.
Memoriile asociative snt folosite pentru implementarea tabelelor de pagini sau de
segmente n adresarea virtual. Astfel aceste operaii devin mai rapide.
Memorii cache
Procesor 1
Magistral sistem
n cazul legrii cache-ului de procesor operaiile de intrare/ieire sau accesul unui alt
procesor la memoria principal, pot fi suprapuse cu operaiile de citire/scriere a procesorului 1.
n aceast situaie coninutul blocului din memoria cache i din memoria operative trebuie s
corespund. Orice modificare survenit n una din memorii se va nscrie n cealalt memorie,
astfel controlerul cache devine foarte complex.
Cache
Memorie
Dac cache-ul se leag de memorie, ea este comun pentru toate procesoarele. Astfel
magistrala sistemului nu va fi eliberat, dar orice modificare n memoria cache va fi vzut de
toate procesoarele, deci blocul trebuie transcris numai dac se va nlocui.
Cnd se cere o dat, se verific dac este sau nu ncrcat deja n cache, cutnd adresa ei
ntr-o tabel. Tabela de coresponden a adreselor din memoria cache i memoria operativ
poate fi realizat cu memorii asociative.
Controler cache
Magistrala
de adrese Memorie
asociativ
Memoria
Memorie operativ
cache
Magistrala
de date
Fig. 4.12.
n anumite situaii, ntreaga memorie cache poate fi memorie asociativ. n acest caz
memoria cache este organizat pe cuvinte, de lungimi egale. Data cerut va fi cutat rapid n
memoria cache, i dac ea nu exist, va fi adus din memoria operativ.
40
5. Microprocesorul 80386
Este un procesor cu o magistral de date i de adrese pe 32 de bii, capabil de a adresa 4
Gbyte (232) memorie fizic i 64 Tbyte (246) memorie virtual. Are nglobat o unitate de
gestionare a memoriei i mecanisme de protecie, care faciliteaz sistemele de operare multi-
user. i-a pstrat compatibilitatea cu toate procesoarele precedente ale familiei 80X86. Are o
structur pipeline cu ase nivele, care permite simultanetinatea extragerii, decodificrii,
executrii instruciunilor, gestionrii memoriei i controlului magistralei. Unitatea de control al
magistralei realizeaz legtura ntre microprocesor i mediu, gestionnd cererile de date, de cod
sau predarea magistralei. Unitatea de extragere a instruciunilor stocheaz instruciunile primite
de la unitatea de control al magistralei ntr-o coad de ateptare de 16 byte. Instruciunile snt
decodificate, descompuse n microoperaii, i stocate ntr-o alt coad de ateptere. Unitatea de
execuie conine un set de registre, subuniti de adunare i de nmulire. Unitile de
segmentare i paginare transform adresele logice n adrese fizice.
Registre
nmulire - mprire
Registre de uz general
Microprocesorul conine opt registre de 32 bii (EAX, EBX, ECX, EDX, ESP, EBP, ESI,
EDI), accesul pe ultimii doi byi putndu-se realiza i separat (AX, BX, CX, DX, SP, BP, SI,
DI). Patru dintre ele (AX, BX, CX, DX) formeaz o pereche de dou registre (AH i AL).
EAX
AX
AH AL
Fig. 5.2.
41
Registrele ESP, EBP snt folosite ca indicatoare de stiv, iar ESI, EDI pentru indexare i
operaii cu iruri.
Registre segment
Procesorul are 6 registre segment denumite CS, DS, SS, ES, FS, GS, care permit
separarea segmentelor de cod, date, stiv i un segment definit de utilizator, asigurnd
modularitatea programelor:
- CS - adresa segment al programului n execuie;
- DS - adresa segmentului de date curent;
- SS - adresa segment al stivei;
- ES, FS, GS - conin adresa a 3 segmente (numite extrasegment) definite de
utilizator, folosite concurent.
Flaguri
31 16 15 0
VM RF // NT IOPL OF DF IF TF SF ZF // AF // PF // CF EFLAGS
Fig. 5.3.
Registre speciale
Registrele care conin adresa de nceput a celor patru tabele de descriptori segment snt:
- TR - registrul stare task;
- IDTR - registrul tabelei de descriptori ai ntreruperilor;
- GDTR - registrul tabelei descriptorilor globali;
42
31 0
PG Rezervat ET TS EM MP PE CR0
Fig. 5.4.
Tehnici de adresare
Dup pornire sau dup reset, microprocesorul intr automat n mod real de lucru, i
rmne n acest mod pn cnd va fi trecut n mod protejat prin program. Lucreaz ca un 8086
cu performan ridicat, cu set extins de instruciuni i cu registre de 32 de bii. Spaiul de
adresare al procesorului este acelai ca la 8086, adic de 1 Mbyte pentru memorii i 64 kbyte
pentru operaii de intrare/ieire. Lungimea maxim al unui segment este de 64 kbyte i pot fi
folosite simultan 6 segmente.
Formarea adreselor fizice se realizeaz conform formulei:
AF = (reg. segment) x 16 + offset
Descompunerea adreselor fizice n adrese logice nu este unic. Offsetul reprezint adresa
n cadrul segmentului, dar nceputul de segment poate fi definit oriunde (cu restricia ca adresa
lui s fie multiplu de 16). Pentru operaii de I/O nu este nevoie de registru segment. Adresa
segment se afl totdeauna ntr-un registru segment, iar locul offsetului depinde de modul de
adresare. Registrul segment care va fi folosit este nscris tot n codul instruciunii, dar poate fi
schimbat cu un prefix.
Tratarea ntreruperilor
Vectorul de ntrerupere (provenind din surs intern sau extern) se nmulete cu 4, astfel
se obine un index n tabela descriptorilor de ntrerupere, unde snt stocate adresele (segmentul
i offsetul) rutinelor de servire al ntreruperilor. Adresa de nceput i lungimea acestei tabele
snt definite n registrul IDTR. Dup reset, adresa de baz are valoarea 0, iar lungimea este de
3FFh, pentru a pstra compatibilitatea cu procesorul 8086. Ea poate fi modificat la
microprocesorul 80386, dar fixarea unor valori incorecte va cauza ntreruperi interne.
Intreruperile interne n mod real snt:
0 divizare cu 0;
1 executare pas cu pas;
3 puncte de oprire;
4 depire aritmetic;
5 depirea limitelor la instruciunea BOUND;
6 cod invalid;
7 coprocesorul nu este prezent la instruciunea WAIT sau ESC;
8 limita tabelei descriptorilor de intrerupere este prea mic;
13 depirea segmentului.
Schimbarea modurilor de lucru
Trecerea n mod protejat se realizeaz prin setarea bitului PE din registrul CR0, iar
revenirea n mod real prin tergerea aceluiai bit. La revenirea n mod real, trebuie urmrit
folosirea corect a adreselor. Dac a fost activat i opiunea de paginare, se va verifica dac
pagina respectiv se afl n memoria operativ sau nu. Trebuie dezactivat opiunea de
paginare (prin resetarea bitului PG din CR0), i ncrcat 0 n registrul CR3 pentru a terge
cache-ul de pagin. Noul segment trebuie s aib limita egal cu 64 kbyte, s fie prezent n
memoria operativ, i s aib drept de scriere. Procedura de revenire dezactiveaz
ntreruperile, ncarc registrul IDTR cu valoarea corect, resetez bitul PE, execut o
instruciune JMP (pentru a goli lista instruciunilor extrase i decodificate).
44
Limita
47/31 31/15 0
Adresa de baz
Operand
Segmentul
Maxim 4 gigabyi ales
Tabela de descriptori globali este o resurs al sistemului folosit de fiecare task, care
conine descriptori system. Registrul GDTR (48 bii) definete lungimea tabelei de descriptori
globali pe 16 bii (lungimea maxim de 65536 byte), i adresa de baz a tabelei, care poate fi
poziionat oriunde n cei 4 Gbyte. Registrul GDTR trebuie ncrcat nainte de a trece la modul
protejat, i de regul nu este modificat n acest mod.
45
Memorie fizic
8192
8191
8090
.
GDTR .
.
Tabela de descriptori
47 40 39 16 15 0
globali (GDT)
Fig. 5.6.
Memorie fizic
256
255
254
.
IDTR .
.
Tabela descriptorilor
47 40 39 16 15 0 de intrerupere (IDT)
Fig. 5.7.
46
Fiecare task poate avea acces la tabela de descriptori globali i la o tabel proprie,
denumit tabela de descriptori locali.
Memorie fizic
15 0 Descriptor local
LDTR GDT
47 16 15 0
Cache
Baza Limita
pentru LDTR
LDT
Fig. 5.8.
Ea conine decriptori segment de cod i date pentru taskul respectiv, din care rezult
posibilitatea de a defini n sistem mai multe tabele locale. Registrul LDTR de 16 bii nu
definete direct tabela de descriptori locali; ea conine un selector care arat ctre un descriptor
din tabela de descriptori globali. De fiecare dat cnd LDTR este ncrcat cu un selector
transparent din tabela de descriptori globali, descriptorul corespunztor va fi ncrcat n
memoria cache ataat acestui registru, definind astfel tabela de descriptori locali (adresa de
nceput, lungimea i drepturile de acces).
Mecanismul de calcul al adreselor n modul protejat este foarte complex, dar
microprocesorul conine o unitate de gestionare a memoriei, care realizeaz transpunerea
adreselor virtuale (logice) n adrese fizice.
n modul protejat, calculatorul lucreaz cu adrese virtuale (logice) de 48 bii, compus din
partea de selector (16 bii) i offset (32 bii). Lungimea unui segment poate fi definit de la 1
byte la 4 Gbyte. Selectorul conine 2 bii, care reprezint nivelul de privilegiu cerut al
segmentului, i este folosit n mecanismele de protecie, nu intr deci n calculul adreselor.
Pentru a forma adrese virtuale, rmn 46 de bii, care reprezint un spaiu de adresare de
246=64 terabyte. Un alt bit al selectorului (TI) va selecta ntre tabela de descriptori locali i cel
global, deci spaiul de adresare virtual se mparte n 32 terabyte spaiu de adresare global i
32 terabyte spaiu de adresare local. Magistrala de adres fiind de 32 bii, spaiul fizic de
adresare este de 4 Gbyte. Acest lucru permite echiparea sistemului cu un mediu de stocare
extern (de ex. hard disk), vzut ca un ntreg din punct de vedere al adreselor. Segmentele care
nu snt folosite la un moment dat, vor fi stocate aici. Unitatea de gestionare a memoriei
determin existena segmentului cerut n memoria fizic; cazul contrar se va semnala print-o
ntrerupere intern. Sistemul de operare poate iniia n acest caz ncrcarea segmentului de pe
suportul extern, i eventual salvarea unui segment din memorie pe suportul extern.
Calculul adreselor fr paginare
Selectorul se afl ntr-un registru segment al procesorului. Fiecare registru segment are
ataat un registru cache de 64 bii, care conine descriptorul corespunztor selectorului, i care
este ncrcat automat din tabela de descriptori (local sau global dup cum indic bitul TI al
47
selectorului). Offsetul care se afl ntr-un registru, sau direct n instruciune, va selecta
operandul din segmentul indicat de registrul segment corespunztor.
Memoria fizic
80386
47 32 31 0
Segment date
Adres Selector (DS) Offset (EBX)
Operandul
64 0
Fig. 5.9.
Memoria fizic
80386
...
Directorul Pagina Offset
Operandul Pagina
Cache pagin
...
Pagina curent
Tabela de pagini
...
...
CR3
Fig. 5.10.
48
Structura descriptorilor
Fiecrui segment de memorie i corespunde un descriptor, care se afl n tabela de
descriptori globali, locali sau de ntrerupere. Fiecare descriptor are o lungime de 8 byte i are
urmtoarea structur:
31 24 23 16 15 8 7 0
Fig. 5.11.
20 bii definesc lungimea segmentului, 32 bii adresa de nceput al segmentului, iar restul
tipul i drepturile de acces. Putem distinge descriptori segment (cod sau date) i descriptori
sistem. Biii care definesc drepturile de acces snt:
A 0 - nu a existat acces la segment;
1 - selectorul de segment a fost ncrcat ntr-un registru segment;
S 0 - descriptor sistem;
1 - descriptor segment;
DPL - nivelul de privilegiu al descriptorului;
P 1 - segmentul este prezent n memoria fizic;
E 0 - segment de date;
1 - segment de cod;
G 0 - lungimea segmentului exprimat n byte;
1 - lungimea segmentului exprimat n pagini.
O parte a biilor de acces pot avea semnificaii diferite n funcie de tipul segmentului.
Pentru segmentele de cod, biii pot fi:
W/R 0 - segmentul nu poate fi citit;
1 - segmentul poate fi citit;
C 1 - segmentul de cod poate fi executat dac CPL DPL i CPL rmne
neschimbat,
iar pentru segment de date:
W/R 0 - segmentul nu poate fi scris;
1 - segmentul poate fi scris;
C 0 - offsetul trebuie s fie mai mic ca limita;
1 - offsetul trebuie s fie mai mare ca limita.
Multitasking i protecie
Microprocesorul 80386 permite prin structura lui hard coexistena a mai multor taskuri
care vor fi executate divizate n timp. Controlul va fi schimbat de la un task la altul dup
trecerea unui interval de timp fixat. Taskul curent executat va trece la sfritul listei taskurilor
ce ateapt execuia. Taskul poate fi definit ca o colecie de proceduri care execut o sarcin
specificat. Are implementat un mecanism de schimbare a taskurilor, care la un procesor ce
ruleaz la o frecven de 16 MHz dureaz 19 microsecunde. Fiecare task va avea acces la
memoria global, i definete o memorie local la care are acces numai el. n acest sistem
protecia la acces incorect sau neautorizat a zonelor de memorie devine necesar. Procesorul
include i aceste mecanisme de protecie. Segmentarea, paginarea i descriptorii fac parte din
acest mecanism de protecie. Segmentul este unitatea de memorie cea mai mic care posed
drepturi de acces. Acestea snt definite n descriptorul segmentului conform celor prezentate
49
31 24 23 16 15 8 7 0
Fig. 5.12.
Descriptorii de poart pot fi de tip CALL, TASK, INTERRUPT sau TRAP, dup
instruciunea la care snt folosite. Conin selectorul i offsetul destinaiei la care se va realiza
transferul, offsetul indicnd instruciunea ce urmeaz a fi executat. Cnd se execut o
instruciune CALL, offsetul acestuia va fi ignorat, iar selectorul va arta ctre un descriptor de
poart, care va determina segmentul i offsetul instruciunii. La revenire (RET), se restabilete
nivelul de privilegiu al programului care coninea instruciunea CALL.
50
Tabela de descriptori
Procedur
Fig. 5.13.
Schimbare de taskuri
Fiecrui task i este asociat un selector care se afl n registrul TR, i arat ctre un
descriptor stare task din tabela de descriptori globali. De fiecare dat cnd se schimb un task,
starea lui curent trebuie salvat n segmentul stare task (TSS) ataat acestuia, i starea noului
task va fi ncrcat din segmentul corespunztor n registre. Structura segmentului stare task:
Schimbarea se realizeaz n modul urmtor: exist un task curent, care ruleaz i face apel
la un alt task (JMP sau CALL), seteaz bitul NT din flaguri; taskul curent va fi suspendat, iar
regitrii vor fi salvai n TSS; taskul 2 va fi marcat n descriptorul lui ca fiind ocupat (pentru a
nu fi apelat de un alt task), i starea lui va fi ncrcat din TSS n regitrii; se execut
instruciunea indicat de CS i EIP.
Dac se trece la un nivel mai privilegiat prin schimbare de task, aceasta se realizeaz prin
descriptor de poart TASK, care conine un selector ctre TSS -ul noului task.
31 24 23 16 15 8 7 0
7 Neutilizat P DPL 00101 Neutilizat 4
3 Selector Neutilizat 0
Fig. 5.15
Sistemul de ntreruperi
Tabela descriptorilor de ntrerupere poate fi plasat oriunde n memorie, adresa lui de
nceput fiind specificat de IDTR. n mod protejat tot 256 de ntreruperi pot fi tratate. Tabela
va conine descriptori de poart de ntrerupere, de task sau de trap. Schimbarea nivelului de
privilegiu este posibil deoarece ntreruperile se execut totdeauna prin descriptori de poart.
La apariia unei ntreruperi, selectorul va fi calculat nmulind cu 8 numrul ntreruperii.
Cu ajutorul acestui selector din tabela descriptorilor de ntrerupere se scoate un descriptor
poart. Dac descriptorul este de tip ntrerupere, se reseteaz bitul IF (dezactivnd astfel
ntreruperile externe), i se transfer controlul unei rutine din taskul curent. Dac descriptorul
este de tip task, se realizeaz schimbare de task, dar acesta nefiind reentrant, trebuie asigurat s
nu apar o nou ntrerupere nainte de a se termina ntreruperea n curs. Dac segmentul de
cod, care conine rutina de tratare a ntreruperii, este conform, nu se schimb nivelul de
privilegiu; n aceast situaie se salveaz n stiv EFLAG, CS, EIP. n situaia n care se
schimb nivelul de privilegiu, se schimb i stiva, deci vechiul indicator de stiv va fi salvat.
EFLAGS SS
EIP
a) b)
Operaii de intrare/ieire
O operaie de intrare/ieire n mod protejat se va executa dac CPL este mai mare ca
IOPL nscris n EFLAG. Fiecare segment stare task (TSS) poate conine o hart a
permisiunilor pentru operaii de I/O. Pentru fiecare adres de I/O corespunde un bit, care
52
pentru valoarea 0 permite executarea operaiei de I/O la adresa respectiv, iar pentru valoarea
1 inhib operaia. Dimensiunea acestei hri poate varia, nu exist restriciunea de a o defini
pn la capt, dar totdeauna ncepe cu adresa 0. Testarea biilor de protecie se realizeaz
numai n situaia n care CPL este mai mic ca IOPL. Accesul la o adres care nu este cuprins
n hart va genera o nrerupere intern.
Modul virtual
Permite executarea programelor scrise pentru 8086 n modul protejat, fr modificarea lor.
Deoarece 8086 adresez doar 1 Mbyte memorie, devine posibil simularea mai multor
procesoare 8086 n regim multitasking. Se pot executa simultan i programe n mod protejat,
iar schimbarea din mod protejat n mod virtual i invers se realizeaz de un program special,
denumit monitor virtual. n modul virtual se trece setnd pe 1 bitul VM din EFLAG, dar numai
n mod protejat. Aceast setare nu se efectueaz direct, ci prin schimbare de task sau
ntrerupere, amndou modificnd EFLAG. Ieirea se face n mod asemntor. Testarea bitului
VM se realizaez n urmtoarele dou condiii:
1. cnd se ncarc un registru segment pentru a vedea dac adresa trebuie calculat ca
la 8086;
2. cnd este vorba de o instruciune de intrare/ieire.
n mod virtual registrul segment este tratat ca n mod real, i va forma mpreun cu
offsetul o adres liniar; aceasta va fi transpus ntr-o adres fizic prin mecanismul de
paginare. Adresa fizic poate fi oriunde n spaiul de adrese de 4 Gbyte.
Instruciunile CLI, STI, PUSHF, POPF, INT, IRET, IN, INS, OUT, OUTS n mod
protejat snt sensibile la nivelul de privilegiu dat de IOPL. Nivelul de privilegiu curent (CPL) n
cazul rulrii n mod virtual este 3, iar dac IOPL este mai mic ca 3 oricare dintre instruciunile
mai sus amintite vor genera o intrerupere intern, astfel asigurnd posibilitatea interceptrii i
emulrii lor.
53
6. Sistemul de intrare/ieire
n funcie de distana dintre componentele unui sistem de calcul, putem distinge
comunicaii prin magistral (comunicaii paralele) i comunicaii la distan (comunicaii
seriale).
La comunicaiile paralele, toi biii de date vor fi transmise simultan pe linii separate. Se
pot distinge comunicaii prin magistrale sincrone i asincrone. La comunicaiile sincrone
transferul se realizeaz ntr-un ciclu (sau multiplu ntreg). Sursa i destinaia trebuie s aib
acelai semnal de tact, sau n cazul n care au ceasuri diferite, un semnal de sincronizare al
ceasurilor trebuie transmis periodic. La comunicaiile asincrone exist linii de control distincte,
pe care se transmit mpreun cu datele i semnalele de sincronizare (destinaie pregtit, date
valide, acceptare date). n aceast situaie, fiecare echipament trebuie s fie capabil de a
interpreta i de a genera aceste semnale de control.
O metod de conectare a componentelor este formarea unei magistrale unice n sistem.
Magistral sistem
Fig. 6.1.
Magistral sistem
Fig. 6.2.
Flag
R S
RD READY
MD OE EN MD
UCP Periferic
Registru de date
Fig. 6.3.
Testarea flagului de stare poate fi realizat prin citire periodic de ctre procesor sau prin
generarea unei ntreruperi.
Metod condiionat bazat pe semafoare (handshake)
n cazul acestei metode procesorul i periferia se sincronizeaz reciproc. Avem informaii
att n legtur cu nceperea, ct i cu terminarea operaiei.
STROBE READY
Flag
R S
RD WR
MD OE EN MD
UCP Registru de date Periferic
Fig. 6.4.
Date
STROBE
READY
Fig. 6.5.
La dialogul iniiat de destinaie, aceasta indic starea lui pregtit prin linia READY, dar
transferul de date are loc numai cnd apare semnalul de validare.
Date
READY
STROBE
Fig. 6.6.
Combinnd cele dou tipuri de dialog, se poate obine un dialog cu interblocare complet.
Transmisia datelor va fi nceput numai dac destinaia este pregtit (READY activ), iar
terminarea prelurii datelor este semnalizat tot de destinaie (ACKNOWLEDGE).
READY
STROBE
ACKNOWLEDGE
Fig. 6.7.
Tact
READY
STROBE
ACKNOWLEDGE
Fig. 6.8.
56
Unitatea de GRANT
control al U1 U2 ... Un
magistralei
REQUEST
BUSY
Magistral
Fig. 6.9.
Numrtoare (polling)
Difer de metoda precedent prin schimbarea liniei de acceptare prin liniile de ieire al
unui numrtor reprezentnd o adres. Fiecare echipament are o adres unic. n cazul cererilor
simultane, echipamentul care detecteaz mai repede adresa proprie va primi accesul la
magistral, i numrtorul va fi oprit. La dezactivarea linie BUSY, numrtorul va fi
incrementat n continuare. Prioritatea poate fi schimbat prin ncrcarea sau iniializarea
numrtorului. Defectarea unui echipament nu are implicaii asupra funcionrii restului
sistemului. Dezavantajul metodei const n limitarea numrului de echipamente ce pot fi
cuplate de capacitatea numrtorului.
Unitatea de
U1 U2 Un
control al
magistralei
Num.
REQUEST
BUSY
Magistral
Fig. 6.10.
57
Cereri independente
Fiecare echipament va fi cuplat de unitatea de control al magistralei cu o linie proprie de
cerere i acceptare. Prioritatea va fi determinat de unitatea de control prin program. Sistemul
astfel realizat este foarte rapid i flexibil din punctul de vedere al prioritilor, dar cere multe
linii de interconectare n cazul unui numr mare de componente.
Unitatea de
control al U1 U2 Un
magistralei
BUSY
Magistral
Fig. 6.11.
ntreruperi
n cazul unei ntreruperi provenite de la o surs intern sau extern, UCP transfer
temporar controlul de la programul n curs de execuie la o secven special de tratare a
ntreruperii. ntreruperile externe provenite de la echipamentele de intrare/ieire elibereaz
procesorul de urmrirea strii lor, i vor iniia un transfer de fiecare dat cnd snt pregtite. Ele
pot indica terminarea unei operaii iniiate de UCP, apariia unei erori la echipamentul de
intrare/ieire sau iniierea unui nou transfer. Generearea ntreruperii se realizeaz prin activarea
liniei de control corespunztoare (INT), legat de un registru al UCP-ului. Unitatea central de
prelucrare la terminarea fiecrui ciclu de instruciune testeaz starea registrului.
Etapele prelucrrii unei ntreruperi snt:
- identificarea sursei cererii de ntreruperi;
- obinerea adresei rutinei de servire;
- salvarea numrtorului de program (adres de revenire) i a informaiilor de stare al
UCP;
- executarea rutinei de tratare a ntreruperii pn la instruciunea de revenire din
ntrerupere (RETI);
- refacerea numrtorului de program i a strii salvate, revenirea la programul
ntrerupt.
UCP-urile snt prevzute, de regul, cu instruciuni speciale pentru activarea, dezactivarea
i mascarea ntreruperilor. Aceastea snt necesare n seciunile critice ale programului, cnd
apariia unei ntreruperi ar afecta funcionarea ntregului sistem (de ex. n cazul programrii
unei componente a sistemului). Sistemele de calcul pot fi prevzute i cu linii speciale de cerere
de ntrerupere care nu pot fi dezactivate, denumite ntreruperi nemascabile. Acestea se folosesc
pentru detectarea unor erori critice (de ex. scderea tensiunii de alimentare).
Metodele de determinare al prioritilor n cazul ntreruperilor multiple (provenite de la
mai multe echipamente) snt similare cu cele din cadrul cererilor de magistral. Cea mai simpl
metod const dintr-o unic linie de ntrerupere, iar n cazul acceptrii cererii, echipamentul
corespunztor trebuie s trimit adresa rutinei de tratare prin magistrala de date.
58
Flag de INT
ntrerupere
Fig. 6.12.
INT n
...
Registru de INT 2
ntreruperi
INT 1
Fig. 6.13.
Registru Registru de
masc ntrerupere
Codificator prioritar
Fig. 6.14.
De obicei, mai multe periferice vor folosi un singur circuit de generare a vectorilor de
ntrerupere. Circuitul poate deservi mai multe linii de ntrerupere provenite de la diferite
echipamente de intrare/ieire. Cererile vor fi stocate ntr-un registru de ntrerupere. Registrul
masc de ntrerupere permite sau interzice trecerea unei ntreruperi. Codificatorul prioritar
genereaz o unic ntrerupere ctre UCP, i formeaz vectorul de ntrerupere corespunztor
cererii deservite.
59
Memorie
Magistrala de adrese
Magistrala de date
RA RD Numrtor RA RD
DRQ
Fig. 6.15.
Ciclu instruciune
Ciclu UCP
Puncte de
suspendare pentru DMA
Puncte de
suspendare pentru ntreruperi
Fig. 6.16.
Comunicaii la distan
n cazul comunicaiilor seriale, biii de date vor fi transmise succesiv, pe o singur linie.
Formatul datelor poate fi sincron sau asincron. La forma asincron, fiecrui caracter se
adaug informaia de cadru, care const dintr-un bit de start i unul sau doi bii de stop. Bitul
de star indic receptorului nceputul procesului de asamblare a unui caracter din fluxul serial de
bii care urmeaz, precum i sincronizarea cu transmitorul. Sincronizarea are loc pe durata
transmisiei unui singur caracter. La forma sincron, caracterele se asambleaz sub forma unor
mesaje, adugndu-se caractere de sincronizare. Transmisia serial poate fi sincron sau
asincron. Transmisia asincron se realizeaz cu modemuri asincrone care folosesc semnale de
frecven diferite pentru 1, respectiv 0 logic. La transmisia sincron, modemul furnizeaz
semnalul de sincronizare ctre terminal, i impune ca datele s fie transmise sincron cu acest
semnal. n unele cazuri, cnd se urmrete creterea vitezei, fr a schimba protocolul, se
opereaz ntr-un mod hibrid, datele cu format asincron fiind transmise sincron. Aceast
transmisie este denumit izosincron.
Elementele caracteristice transmisiei la distan snt:
- suportul informaiei;
- modul de organizare a datelor n cadrul unui caracter transmis;
- vitezele de transmisie, standardizate, fiind msurate n baud (bit/sec);
- sensul de transmisie;
- detecia erorii.
Suportul informaiei este specific terminalului, impunnd de regul viteza de transfer i
modul de organizare a datelor. Vitezele maxime snt:
- prin cablu coaxial 56 kbaud;
- prin fibre optice 1,5 Mbaud;
- prin satelit 50 Mbaud.
Organizarea datelor n mod caracter const din fixarea numrului de cifre utile pe
numrul total de bii (5/7, 7/9, 8/10, 8/11), numrului biilor de stop (1 sau 2) i a paritii
(par, impar i fr paritate).
SYN
ENQ
Cerere date
SYN SYN
EOT SOH
Terminal nepregtit Antet
STX
Text
ETX
Control
Transmisie date
SYN
EOT
Repetare
SYN
SOH
Antet
STX
Text
EOT
Control
SYN SYN
ACK NACK
SYN
EOT
SYN SYN
NAK ACK
Terminal nepregtit
SYN
SOH
Antet Transmisie date
STX
Text
ETX
Control
SYN Suspendare
EOT
SYN
SOH
Antet
STX
Text
EOT
Control
SYN SYN
NAK ACK
SYN
EOT
n ambele situaii, staia central va iniia transmisia prin selectarea staiei terminale.
Retransmisia informaiei n caz de eroare are loc n urmtoarele situaii:
- lips de rspuns (Timeout);
- bloc incorect (caracterul NAK recepionat);
- bloc invalid;
- secven de recepie incorect.
Detecia erorii const n verificarea paritii la nivel de caracter, i verificarea sumei de
control la nivel de bloc. Exist i protocoale cu retransmisie permanent (tot blocul va fi
retransmis la surs pentru a realiza o siguran ridicat). Textul nu poate conine caractere de
control sau dac acestea apar, trebuie prefixate cu DLE (de ex. DLE ETX, DLE EOT).
63
E1 R1
R2 E2
E1 R1
R2 E2
Cn. 0 Terminal
Fig. 6.22.
Date 2
Modulator Filtru Amplificator
Cerere emisie 4
Gata de emisie 5
Tact emisie 15
Date 3
Demodulator Filtru
Post pregtit 20
Date pregtite 6
Prez. purtt. 8 Detector de
purttoare
7
Fig. 6.23.
0 1 0 1 1 0 0 1 0 0 1 0 0
a)
b)
c)
d)
Fig. 6.24. Semnal binar (a) modulat n amplitudine (b), n frecven (c) i n faz (d)
65
7. Reele de calculatoare
Reelele de calculatoare se impun n locurile unde se necesit comunicarea datelor ntre
sisteme de calcul sau posibilitatea corelrii datelor provenite de la calculatoare independente.
Cea mai important caracteristic este mprirea surselor, adic accesul la programe, date i
echipamente, pentru fiecare utilizator, indiferent de locul unde se afl. Un alt avantaj al
reelelor este posibilitatea accesului simultan, prin duplicarea fiierelor. Dup distana la care
snt distribuite componentele, putem distinge:
- reele locale (LAN) - de la 10 m la 1 km;
- reele teritoriale (WAN);
- superreea (Internetworking) - reeaua care leag mai multe reele teritoriale.
Reelele locale snt acele sisteme la care timpul de propagare a semnalelor, comparativ cu
durata de transmisie a unui singur bit, este mai mare, iar comparativ cu durata tipic a unui
mesaj, este mai mic. Snt independente de sistemele publice de telecomunicaie existente, i
pot folosi medii de comunicaii private. Mediile de transmisie asigur o rat de eroare foarte
redus. Nu au comutatoare de pachete, ns fiecare element de prelucrare va poseda o interfa
de reea. La aceast interfa pot fi conectate terminale inteligente, calculatoare personale,
micro- i minicalculatoare. Reelele locale trebuie concepute ntr-un mod care permite
interconectarea cu reelele teritoriale.
Reelele teritoriale utilizeaz un subsitem de comunicaie, deci funciile de comunicaie
snt fizic separate de cele de prelucrare, i snt implementate ca noduri de comunicaie
interconectate. Comunicaia se bazeaz pe tehnica comutrii de pachete care asigur partajarea
eficient a resurselor de comunicaie. Fiecare mesaj se mparte n pachete care se transmit
independent. Un pachet trebuie s conin suficiente informaii de control, ca dirijarea sa prin
reea s se realizeze independent de celelalte pachete. Rolul nodurilor este gestionarea i
realizarea rutei pentru fluxul de pachete.
Dorina de a realizara o superreea la care snt conectate toate calculatoarele existente a
aprut n anii '80. n cadrul ei, reelele teritoriale snt legate prin satelite.
Reelele de calculatoare au fost concepute ntr-o maniera stratificat ierarhic, ca o
succesiune de nivele. Sub egida ISO s-a elaborat Modelul de Referin pentru interconectarea
Sistemelor Deschise. Obiectivele de baz ale acestui model snt legate doar de comportamentul
extern al sistemelor interconectate, caracterul deschis al unui sistem nu este legat de
organizarea particular i funcionarea intern specific sistemului, doar de schimbul de
informaii i de cooperarea dintre sistemele interconectate. A fost conceput pentru reele
teritoriale, dar se aplic, cu anumite particulariti, reelelor locale.
Dou principii eseniale stau la baza conceptului de arhitectur stratificat:
- valorificarea serviciilor asigurate de nivelurile inferioare pentru fiecare nivel, astfel
nct celui mai nalt nivel s-i fie oferit setul de servicii necesare pentru realizarea
unei aplicaii distribuite;
- asigurarea independenei fiecrui nivel, prin definirea serviciilor ctre nivelul
urmtor, independent de modul de realizare a acestora.
Nivelul este compus conceptual din subsistemele de acelai rang ale tuturor sistemelor
interconectate. Se utilizeaz termenul de protocol pentru desemnarea comunicaiei dintre
entitile aparinnd aceluiai nivel, i cel de interfa pentru comunicaia dintre nivele la aceai
entitate. Detaliile unei interfee reprezint n general o opiune local de implementare. Nivelele
trebuie astfel concepute ca fluxul de date prin interfee s fie minim, i schimbarea
implementrii unui nivel s nu afecteze i interfaa. Un nivel poate lipsi dintr-un sistem n
intregime, dac funciile lui nu snt folosite.
Modelul de referin OSI descrie apte nivele funcionale, care, mpreun cu mediul fizic,
asigur un set complet de servicii de comunicaie.
66
Protocol
7 Aplicaie Aplicaie 7
Interfa
6 Prezentare Prezentare 6
5 Sesiune Sesiune 5
4 Transport Transport 4
Fig. 7.1.
Aceast arhitectur poate fi conceput ca fiind compus din dou pri diferite:
- partea de suport (1, 2, 3);
- partea de utilizator (5, 6, 7).
Cele dou pri snt separate de nivelul de transport, care are rolul de a ascunde detaliile
constructive ale comunicaiei.
Nivelul fizic asigur mijloacele mecanice, electrice funcionale i procedurale pentru
accesul la mediul fizic. Totodat realizeaz transmisia la nivel de bit al informaiei. Problemele
caracteristice ale nivelului snt: codificarea informaiei, modul de transmisie, cuplarea-
decuplarea echipamentelor, nivelul semnalelor, modul de conexie i configuraia pinilor.
Legtura de date, prin organizarea biilor n blocuri, asigur posibilitatea detectrii i
corectrii erorilor care apar la nivel fizic. Cuprinde facilitile de sincronizare pentru
comunicaii semiduplex i duplex.
Nivelul de reea se preocup de dirijare mesajelor ntre dou noduri intermediare folosind
blocuri speciale de control, care conine adresa destinaiei. Acest nivel va alege ruta pe care
informaia va ajunge la destinaie i va aduga adresele nodurilor intermediare.
Nivelul transport realizeaz transferul datelor de la surs la destinaie pe ruta stabilit de
nivelul precedent cu o integritate ridicat. Se utilizeaz protocoale bazate pe confirmare, care
implic transmisia, retransmisia i recuperarea datelor eronate. Transportul este de la cap la
cap, programul de pe calculatorul surs conversnd cu un program similar de pe calculatorul
destinaie. La acest nivel canalelor logice se asociaz adrese fizice.
Nivelul sesiune permite legarea utilizatorului la un calculator central care lucreaz cu
divizarea timpului (time sharing) i transmiterea fiierelor prin funciile de stabilire i eliberare
de conexiuni, sincronizare, raportare ntrerupere. Pentru a evita repetarea ntregului transfer n
caz de eroare, nsereaz periodic puncte de control de la care poate fi reluat transmisia.
67
... ...
a) b)
c) d)
Fig. 7.2.
(TSR) din interfaa proprie, care se va nsera n reea doar cnd inelul de transmisie este liber
(poz. 2 a comutatorului). Mesajul este circulat n reea; n acest timp orice alt mesaj care
sosete este ntrziat, i nscris n registrul de recepie (RSR). Dup transmiterea mesajului
propriu, se comut la registrul de recepie (poz. 3), pn cnd i acesta va fi golit, dup care se
reface configuraia iniial a inelului (poz. 1).
Inel reea
Interfa
de inel
3 1
RSR 2
Nod
TSR
Fig. 7.3.
Un nou mesaj poate fi transmis de acelai nod numai dup golirea celor dou registre.
Protocoale de comunicaie pentru reele locale cu magistral de difuzare
Snt caracterizate de necesitatea alocrii unei resurse unice (canal de comunicare) la o
multitudine de surse de mesaje. Competiia din interiorul acestor sisteme este provocat nu
numai de natura lor aleatoare, ci i de imposibilitatea utilizatorilor de a se observa reciproc pe
msura apariiei cererilor de utilizare. Informaia de control trebuie transferat pe acelai canal
cu informaia propriu-zis.
Exist dou tipuri de strategii:
- strategii cu competiie (cu acces aleator);
- strategii cu consultare (acces fr coliziuni).
n cadrul strategiilor cu competiie apar dou probleme: rezolvarea coliziunilor (prin
tehnicile adaptive i neadaptive) i controlul accesului (prin tehnicile transmite surd, ascult
i transmite, ascult, transmite i ascult transmisia).
Dac fiecare nod implicat ar fi capabil s aleag un moment de retransmisie care s difere
de momentele alese de ceilali, problema coliziunilor ar fi simplificat.
Tehnicile neadaptive nu in cont de traficul curent n reea, planificarea ntrzierilor fiind
fixe. Snt adecvate numai n sisteme cu numr redus de surse.
n cazul tehnicilor adaptive, fiecare utilizator blocat ntr-o coliziune ncearc s evalueze
numrul utilizatorilor blocai n reea, i s ajusteze rata de retransmisie n mod corespunztor.
De obicei, acest lucru se realizeaz cu ajutorul unui controler unic de reea.
Tehnica trasmite surd (ALOHA) asigur transmiterea pachetului n momentul generrii
sale, fr nici o restricie. Sursa trebuie s atepte un interval de timp prestabilit sosirea
confirmrii recepiei. n cazul lipsei confirmrii, se va retransmite tot mesajul. Coliziunea care
ar afecta cea mai mic fraciune din timpul de transmisie, va avea acelai efect ca o interferen
complet de pachete. Prin urmare, timpul maxim nefolosit din cauza coliziunilor este de dou
ori timpul de transmisie. Aceast tehnic este nbuntit prin discretizarea timpului. Alegerea
momentelor de acces la canal nu va fi total asincron. O cuant de timp este egal cu durata de
transmisie a unui pachet.
Prin tehnica ascult i transmite (CSMA) s-a realizat ascultarea canalului nainte de
transmisie de fiecare surs. Dac sursa detecteaz o transmisie n curs, i va amna propria
transmisie pn cnd canalul va fi gsit liber. Coliziunea de pachete poate s apar i n cazul
70
ETHERNET
Prezint o structur cu magistral de difuzare, folosind tehnica ascult, transmite i
ascult transmisia pentru controlul accesului.
Terminator
Transceiver Transceiver
Controler Repetor
Calculator Noduri
Tr. Tr.
Transceiver
multiport
Repetor
Fig. 7.4.
Este o reea extrem de vast i fiabil, cu topologie hibrid stea-inel, folosind tehnica
jetonului circular. Configuraia minimal este alctuit dintr-un singur inel, realizat din cablu
coaxial care leag interfeele de reea. Numrul maxim de staii pe inel este de 250. Datorit
numrului mare de repetri a semnalului circulant, pot apare desincronizri la nivel de bit. Dac
nodurile snt distribuite pe distane mari, este preferabil s se realizeze mai multe inele
interconectate prin puni. Puntea este un calculator echipat cu cte o interfa pentru fiecare
inel.
Nod
Interfa
Punte
Fig. 7.5.
Sistemul de operare are ca scop gestiunea resurselor aflate n reea. Cea mai important
funcie a lui este mprirea numelor i adreselor n sistem, asigurnd o compatibilitate cu mai
multe tipuri de reele i mai multe sisteme de operare. Asigur configurarea i reconfigurare a
resurselor, precum i a parametrilor reelei, iar la identificarea unor erori activeaz sau
dezactiveaz anumite surse. Funcia de monitorizare permite urmrirea evenimentelor din
reea.
Gestiunea securitii cuprinde controlul accesului (creaz conturi, atribuiri de parole,
restricii la folosirea anumitor staii, determin numrul de staii folosite simultan de un
utilizator, eventual timpul maxim de utilizare) i protecia resurselor, care atribuie unui
utilizator sau unui grup dreptul de a folosi o resurs sau se aplic un atribut resursei (citire,
scriere, creare, cutare).
Gestiunea fiierelor trebuie s asigure fiecrui utilizator accesul la toate datele din sistem,
indiferent de modul de reprezentare al acestora. La reele locale, uzual, toate datele vor fi
pstrate pe un fileserver, care va pstra toate datele din sistem. Acest lucru impune msuri de
siguran n plus. De obicei se dubleaz tabela de directoare, dar exist situaii cnd ntregul
volum de date este dublat.
Serviciile suplimentare ale reelei snt: transmisia mesajelor electronice, gestiunea
contabil, gestiunea listrilor.
72
Nod
Punte ETHERNET
TOKEN RING
8. Arhitecturi speciale
Bii 7 1 5 5 1 13
R0 R0 R0
R7 Var. globale R7 Var. globale R7 Var. globale
R8 CWP=8
R15 Param. intrare
R16
Var. locale
R23
R24 R8 CWP=24
R31 Param. ieire R15 Param. intrare
R16
Var. locale
R23
R24 R8 CWP=40
R31 Param. ieire R15 Param. intrare
R16
R23 Var. locale
R24
Param. ieire
R31
Procesorul conine un numr vast de registre dar la un moment dat vor fi folosite doar 32
dintre ele. Acestea vor fi mprite n 4 grupe egale sau inegale. Primul grup va conine
variabile globale primul registru fiind rezervat pentru a conine 0. Al doilea grup conine
parametrii de apel (intrare) ai unei proceduri. urmtorul grup este rezervat pentru parametrii
locali iar ultimul pentru parametrii de ieire. In cazul n care parametrii nu ncap n numrul de
registre rezervat restul vor fi definii n stiv n modul obinuit. n majoritatea situaiilor ns
este acest spaiu suficient. Spaiul de registre globali va fi folosit de orice procedur. Restul
regitrilor vor fi relativi la indicatorul ferestrei curente (CWP). Cnd procedura A apeleaz
procedura B CWP va fi incrementat cu 16. Astfel regitrii de intrare pentu procedura B vor fi
de fapt registrii de ieire pentru procedura A, deci se evit mutarea parametrilor dintr-un loc n
altul i nu se face acces nici la memorie. Compilatorul va respecta cteva reguli:
- primul parametru se depune n registrul R24
- ultimul parametru in registrul R30
- R31 este rezervat pentru adresa de revenire
- dac snt mai muli parametrii restul se transfer prin stiv
- va schimba coninutul CWP la ficare apel i reface la revenire.
Pentru a optimiza folosirea registrelor compilatorul va determina timpul de folosire al unei
variabile pentru a determina posibilitile de reutilizare al unui registru.
n prezent exist argumente n favoarea celor dou tipuri de procesoare n egal msur.
Adepii CISC-urilor enumer urmtoarele:
- operaiile implementate n microcod se execut mai repede ca programul
- setul complex de instruciuni nu crete preul de producie
- este mai uor de realizat compatibilitatea cu componentele precedente din aceeai
familie
- simplific realizarea compilatoarelor.
Evoluia tehnologic a diminuat unele din aceste avantaje prin realizarea memoriilor cu
timp de acces redus. ntroducerea memoriilor cache a condus la creterea considerabil a
vitezei de transfer ntre memorii i procesor.
n concluzie putem enumera urmtoarele avantaje ale RISC-urilor:
- structura hard fiind mai simpl, snt mai rapide
- compilatoarele pot crea un cod optim
- permit ntroducera paralelismului n unitatea de control.
76
Calculatoare vectoriale
Adres ntreg
A0 A7
32' Adunare
Calculul adreselor
Bufer instr. nmulire
256 Mword
128 blocuri 4 x 128 x 16' Coada de at.
Fig. 8.3.
Toate unitile funionale snt pipeline, i pot accepta un nou set de argumente la fiecare
perioad de ceas. O instruciune poate fi lansat n execuie dac unitatea nu este ocupat cu o
operaie, i dac registrele necesare pentru operanzi i rezultat nu snt rezervate de alte
instruciuni n curs de execuie. O instruciune vectorial (de ex. adunarea a doi vectori)
rezerv registrele pentru toat durata operaiei. Dac o instruciune vectorial folosete un
registru scalar, el nu se rezerv, deoarece unitatea funcional pstreaz o copie a lui. Astfel n
perioada de ceas ce urmeaz lansrii n execuie a instruciunii, coninutul lui poate fi
modificat. Similar, valoarea registrului ce conine lungimea vectorului poate fi modificat
imediat dup trecerea instruciunii. Instruciunile cu vectori de lungimi diferite se pot executa
concurent. n cazul instruciunilor scalare, instruciunea rezerv numai registrul pentru rezultat,
astfel previne citirea lui de alte instruciuni.
O caracteristic important a arhitecturii este posibilitatea de a inlnui o serie de operaii
vectoriale, astfel nct s poat opera mpreun ca un pipeline continuu.
Seciunea de intercomunicaii conine 3 grupe de registre comune, care pot fi accesate de
ctre toate CPU pentru comunicaii i sincronizare. De asemenea exist un ceas comun.
Are aproximativ 128 de instruciuni. Toate unitile funionale lucreaz numai cu registre,
deci fiecare instruciune va conine doar 3 bii pentru definirea sursei i a destinaiei.
Arhitecturi paralele
eficient a resurselor trebuie s existe un sistem unic de operare care mparte sarcinile pe
procesoare.
n cazul sistemelor cu distribuire static, fiecare procesor are o sarcin specific, putnd fi
adaptat pentru acesta. Sistemul de operare devine mult mai simplu, dar n cazul apariiei unei
defeciuni, ntregul sistem poate fi afectat.
Sistemele cu multiprocesor trebuie s asigure comunicarea i sincronizarea proceselor care
ruleaz pe diferite procesoare. Deoarece nu exist un ceas unic n sistem, se definete un ceas
logic, care este actualizat i citit periodic de fiecare procesor prin mesaje.
Reeaua de interconectare realizeaz legtura ntre procesoarele i unitile de memorie
distribuite. Este folosit n mod tipic pentru:
- schimbarea semnalelor de control ntre procesoare,
- conectarea procesoarelor la diferite bancuri de memorie,
- schimbarea mesajelor ntre procesoare,
- realizarea transferului de date,
- conectarea procesoarelor de echipamente de I/O.
Elementele interconectate vor fi denumite noduri ce pot fi legate prin comutare de circuite
sau comutare de pachete. La reelele cu comutare de circuite se stabilete legtura ntre noduri
pe toat durata transferului de date. La reelele cu comutare de pachete fiecare pachet va urma
calea proprie prin reeaua de interconectare, iar nodurile vor avea buffere pentru reasamblarea
mesajelor.
Dup modul de comunicare dintre procesoare, putrem distinge sisteme slab cuplate i
sisteme strns cuplate.
La sistemele slab cuplate, comunicarea se realizeaz prin canale de intrare/ieire speciale.
Magistral intern
Canal de comunicaie
I/O P3 M3 I/O
Magistral intern
Fig. 8.4.
Magistral comun
P1 Pn
I/O1 I/On
Fig. 8.5.
Procesor
Procesor
...
Procesor
0 0
2x2
1 1
2 2
3 3
4 4
5 5
6 6
7 7
INT
Microcalculator Latch
Declanare
Dezactivare Validare
Temporizator Magistral
extern
Temporizator
Microcalculator Latch
INT
Fig. 8.8.
81
Magistral de date
Magistral de adrese
Magistral de date
Procesor Memorii
Magistral de control
Procesor Memorii
Procesor Memorii
Circuit majoritar
Periferie
Fig. 8.9.
Circuitul majoritar asigur comanda periferiei dac cel puin dou sisteme cer acest lucru.
Cele trei procesoare lucreaz sincron, i execut aceai secven. Problema cea mai important
este sincronizarea procesorului la care s-a eliminat eroarea. Procesorul trebuie adus la aceai
stare cu celelalte, i memoria proprie va fi ncrcat cu datele corespunztoare. Pentru a evita
punctele critice din sistem, att circuitul de sincronizare, ct i circuitul de ncrcare date vor fi
realizate cu circuite majoritare.
82
Logic de reset
Logic de reset
Logic de reset
Fig. 8.10.
Singura restricie a sistemului este evitarea apariiei unei erori noi n timpul coreciei celei
precedente. Sistemul asigur o flexibilitate mare n timpul depanrii, prin comanda permanent
a periferiei.
Masive de procesoare
Control al fluxului
de date
Sistem de comunicare
Fig. 8.11.
Date
Comutator Element
Control Memorie date
de ieire de prelucrare
Date
Comutator
Control Cuplor
de intrare
Fig. 8.12.
84
Connection Machine
Nu reprezint o unitate de sine stttoare ci este cuplat la una sau mai multe calculatoare
gazd.Const din patru pri identice fiecare avnd 16384 de procesoare.Fiecare parte are 2
canale de comunicare pentru operaii de I/O. Programul va fi secveniat de calculatorul gazd
i transmis instruciune cu instruciune la procesoarele de prelucrare. Fiecare procesor va
executa aceeai instruciune. Procesoarele nu au memorie program local.
Cele patru pri pot fi configurate a rula programe independente sau pot forma un singur
sistem.
Fig. 8.13.
Un procesor const dintr-o unitate aritmetic i logic pe un bit, 64kbit memorie local, 4
bii de flag, interfaa cu memoria, cu canalele de I/O i un router.
85
Memorie 64k
ALU
Fig. 8.14.
n fiecare ciclu instruciune un procesor va extrage 2 bii din memoria privat i un bit din
registrul flag. n urma execuiei unei instruciuni se obin 2 bii ca rezultat, care pot fi stocai in
memoria privat sau n flaguri. Un procesor are definit 256 de funii distincte, iar rezultatul
unei operaii se obine dintr-o tabel de adevr.
Bii 16 16 2 2 2 1 8 8
Flag intrare
Flag ieire
Flag condiie
Stare activ
La i de la MCU via
magistrale linie/coloan
Ieire MUX
La vecini
Suma
Memorie
4/16 Kbii Q Sumator pe 1 bit C
Y X Carry in
AND A Controlul
activitii
MUX intrare
N
E
S
1 0 W
Fig. 8.16.
Fiecare procesor este legat direct de cei patru vecini, iar conexiunile de la marginea
masivului snt definite de instruciunea n curs de execuie.
ntr-un procesor exist trei registre pe un bit, dou multiplexoare i un sumator complet.
Registrul A asigur controlul programat al procesorului, deoarece anumite instruciuni de
transfer snt executabile dac acest registru este setat. Are intrarea comandat de pori, care
permit realizarea funciei I ntre registru i intrare, realiznd astfel mti de control. Sumatorul
adun registrul Q, C i data de la intrare, producnd suma i transportul, care vor fi memorate
n registrul corespunztor.
Dac o instruciune este n interiorul unui ciclu, extragerea instruciunilor se execut o
singur dat pentru cele N iteraii ale buclei. Instruciunea de ciclare trebuie s specifice
lungimea buclei (max. 60 instruciuni) i numrul de iteraii (max 254).
Tipurile de instruciuni posibile la DAP snt:
- adunare pe 1 bit;
- adunare vectorial;
- adunare serial;
- transfer registru registru n cadrul unui procesor;
- transfer registru al unitii de control masiv;
- transfer registru la unitii de control memorie;
- operaii logice cu registrele unui procesor;
- operaii logice cu registrele unitii de control.
Modul normal de funcionare al calculatorului DAP este serial pe bit, paralel pe 4096
cuvinte. Mecanismul de adresare va folosi posibilitatea hard de execuie a buclelor prin accesul
consecutiv la biii de date memorai continuu. Alternativ, elementele de calcul pot fi configurate
pentru a forma un sumator paralel, astfel pot fi prelucrate n paralel 64 cuvinte a 64 bii. Cnd
datele nu corespund structurii calculatorului DAP, naintea execuiei calculelor, datele trebuie
reorganizate.
Masive de procesoare reconfigurabile
Aceste tipuri de masive i pot adapta structura fizic ntr-o oarecare msur structurilor
de date. Snt similare sistemelor DAP n cea ce privete structura i controlul comun. Diferena
const n posibilitatea modificrii locale a unei instruciuni prin distribuirea cuvintelor de
control n masiv. Acesta permite ca la un moment dat un procesor elementar s execute o alt
87
instruciune. Un astfel de masiv poate fi vzut ca o memorie inteligent al unui alt sistem de
calcul.
Procesoarele pot lucra ntr-un mod diferit, dar preprogramat local, astfel masivul permite
o implemetare eficient a operaiilor de manipulare a datelor, inclusiv cele cu structuri
neregulate (arbori sau grafuri).
Magistral rezultat
Conexiuni
Stiv pe Stiv pe Stiv de
la ALU R
cuvnt bit activitate
vecini
Magistral operand
Fig. 8.17.
Elementul procesor are dou magistrale pe doi bii, pentru rezultat i operand, astfel
permind transferul simultan a patru valori. ALU execut operaii logice i aritmetice, folosind
numai operanzi locali. Mecanismul de selecie al vecinului permite transferul datelor de la un
procesor la altul. operaiile aritmetice paralele snt realizate prin folosirea ALU i a seleciei
vecinului, care mpreun formeaz un sumator rapid. Cmpurile prestabilite de control, nscrise
n registrul R, snt folosite la programarea comutatoarelor la operaiile aritmetice i de
deplasare. Exist posibilitatea conectrii directe a intrrilor la ieire. Aceste conexiuni snt
folosite pentru distribuirea datelor tuturor elementelor procesoare, sau pentru ocolirea unui
procesor, implementnd structuri arborescente. Memoria intern a unui element funcioneaz ca
o stiv. Stiva de activitate este folosit pentru decuplarea condiionat a elementului procesor.
Memoria de date, funcionnd ca o stiv pentru cuvinte, realizeaz conversia paralel-serie i
serie-paralel a datelor. Stiva poate fi scris sau citit condiional n funie de stiva de activitate.
Setul de instruciuni pentru un masiv cuprind:
- operaii logice binare (dou operaii independente pot fi executate ntr-un singur
ciclu);
- deplasri ciclice;
- copierea unui bit de ctre toi ceilali;
- operaii aritmetice cu transport anticipat;
- nmulire prin folosirea adunrilor multiple.
88
Bibliografie
Anderson D., Shanley T.: Pentium Processor System Architecture. MindShare Press,
Richardson , Tx, 1993.
Hayes J.: Computer Architecture and Organization. McGraw-Hill, New York, 1978.
Hockney R.W., Jesshope C.R.: Calculatoare paralele. Editura Technic, Bucureti, 1991.
Lam H, O'Malley J.: Fundamentals of Computer Engineering. John Willy & Sons, New
York, 1988.
Pappas C., Murray W.: 80386 Microprocessor Handbook. McGraw-Hill, New York, 1988.
Punescu F., Goleteanu D. P.: Sisteme cu prelucrare distribuit i aplicaiile lor. Editura
Tehnic, Bucureti, 1993.
Singh A., Triebel W.: 16 bit and 32 bit Microprocessors Architecture, Software and
Interfacing Technique. Prentice-Hall, Englewood Cliffs, N. J., 1991.
Cuprins
Introducere .......................................................................................................... 3
Microprocesorul 80386.......................................................................................39
Registre de uz general ............................................................................ 39
Registre segment .................................................................................... 40
Flaguri .................................................................................................... 40
Registre speciale ..................................................................................... 40
Tehnici de adresare ................................................................................. 41
Adresare n mod real .............................................................................. 42
Adresare n mod protejat ........................................................................ 43
Multitasking i protecie ......................................................................... 47
Modul virtual .......................................................................................... 51
Bibliografie ........................................................................................................ 81